Неправильно написан поиск минимального и максимального элементов:
Program j;
uses crt;
const n=10;
var a: array [1..n] of integer;
i,min,max:integer;
begin
min:=1; max:=1;
Writeln ('Введите элементы массива');
For i:=1 to n do
Begin
Write ('a[',i: 2,']=');
Readln(a[i]);
End;
Writeln ('Контрольный вывод массива: ');
For i:=1 to n do
Writeln('a[',i:2,']=',a[i]:4);
for i:=1 to n do
begin
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
writeln('Максимальный элемент массива ',a[max],' под номером ',max);
writeln('Минимальный элемент массива ',a[min],' под номером ',min);
end.
Выделенное жирным шрифтом - исправленный вариант.
Теперь программа корректно ищет и минимальный и максимальный элементы, при том проходя массив полностью, а не до первого совпадения, как было в исходной версии.
C# самый простой вариант. Не нравится - совершенствуйте
на форму label1, textBox1, textBox2, textBox3, button1, button2, button3, this.button4, this.button5, this.button6
в Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
double a, b, result;
private void button1_Click(object sender, EventArgs e)
{
a = Convert.ToDouble(textBox1.Text);
b = Convert.ToDouble(textBox2.Text);
label1.Text = "Сумма";
result = a + b;
textBox3.Text = Convert.ToString(result);
}
private void button2_Click(object sender, EventArgs e)
{
a = Convert.ToDouble(textBox1.Text);
b = Convert.ToDouble(textBox2.Text);
label1.Text = "Разность";
result = a - b;
textBox3.Text = Convert.ToString(result);
}
private void button3_Click(object sender, EventArgs e)
{
label1.Text = "Произведение";
textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text));
}
private void button4_Click(object sender, EventArgs e)
{
a = Convert.ToDouble(textBox1.Text);
b = Convert.ToDouble(textBox2.Text);
label1.Text = "Частное";
result = a / b;
textBox3.Text = Convert.ToString(result);
}
private void button5_Click(object sender, EventArgs e)
{
textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox1.Text));
}
private void button6_Click(object sender, EventArgs e)
{
textBox3.Text = Convert.ToString(Math.Sqrt(Convert.ToDouble(textBox1.Text)));
}
}
}
Неправильно написан поиск минимального и максимального элементов:
Program j;
uses crt;
const n=10;
var a: array [1..n] of integer;
i,min,max:integer;
begin
min:=1; max:=1;
Writeln ('Введите элементы массива');
For i:=1 to n do
Begin
Write ('a[',i: 2,']=');
Readln(a[i]);
End;
Writeln ('Контрольный вывод массива: ');
For i:=1 to n do
Writeln('a[',i:2,']=',a[i]:4);
for i:=1 to n do
begin
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
writeln('Максимальный элемент массива ',a[max],' под номером ',max);
writeln('Минимальный элемент массива ',a[min],' под номером ',min);
end.
Выделенное жирным шрифтом - исправленный вариант.
Теперь программа корректно ищет и минимальный и максимальный элементы, при том проходя массив полностью, а не до первого совпадения, как было в исходной версии.