Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите пожалуйста!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
goosberry
Задача: в массиве из 10 элементов найти min элемент и все элементы массива уменьшить на половину значения этого элемента.

Задача 2: Даны массивы x и y из 10 элементов. Заменить элементы массива x, превышающие значение среднего арифметического элементов массива y этим значением (средним арифм.).

Заранее спасибо! give_rose.gif
Client
Показывай что сделал. В чем проблема?
goosberry
1)

Program massiv;
Uses crt;
Var x: array [1..10] of integer;
min,I: integer;
k: real;
Begin clrscr; randomize;
For i:=1 to 10 do x[i]:=random (20);
Min:=x[1];
For i:=1 to 10 do begin
If x[i]<min then min:=x[i];
K:=min/2;
For i:=1 to 10 do begin
X[i]:=x[i]-k;
Write (x[i]); end;
Write (‘min элемент = ‘, min);
Readkey;
End.



2)

Program massiv;
Uses crt;
Var x: array [1..10] of integer;
y: array [1..10] of integer;
sum, I: integer;
sr: real;
Begin clrscr;
Write (‘Введите массив x’);
For i:=1 to 10 do readln (x[i]);
Write (‘Введите массив y’);
For i:=1 to 10 do readln (y[i]);
For i:=1 to 10 do Sum:=sum+y[i]; Sr:=sum/10; write (sr);
For i:=1 to 10 do begin If x[i]>sr then x[i]:=sr;
Writeln (x[i]); end;
Readkey;
End.


Client
1)
Program massiv;
Uses crt;
Var x: array [1..10] of integer;
min,I,k: integer;
Begin clrscr; randomize;
For i:=1 to 10 do x[i]:=random (20);
Min:=x[1];
For i:=2 to 10 do If x[i]<min then min:=x[i];
K:=min div 2; // массив целых чисел
For i:=1 to 10 do begin
X[i]:=x[i]-k; //здесь была бы ошибка
Write (x[i]); end;
Write (‘min элемент = ‘, min);
Readkey;
End.
Во второй аналогично
For i:=1 to 10 do begin If x[i]>sr then x[i]:=sr; //sr-real, а массив из целых чисел
goosberry
Большое спасибо! Я вообще-то тоже подумала, что здесь что-то с типом переменных...
А что означает div?
goosberry
И ещё: когда min элемент =1, то исходный массив равен конечному...
Client
div-деление с целью получения целой части.
Цитата
И ещё: когда min элемент =1, то исходный массив равен конечному...
Как массив задаешь?
goosberry
Ну допустим, массив заполняется случайными числами, да и если с клавиатуры заполнять, то часто наименьшим значением является число 1.
samec
используйте массив вещественных чисел.
Просто при минимальном элементе, равном 1, если используется массив целых чисел, следующий код
K:=min div 2;

даёт значение K равное нулю. Поэтому исходный и конечный массив - совпадают.

При использовании же массива вещественных чисел, меняем
K:=min div 2;

на
K:=min / 2;

и получаем K=0.5. (min, K :real)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.