Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите пожалуйста!

Автор: goosberry 30.06.2008 12:49

Задача: в массиве из 10 элементов найти min элемент и все элементы массива уменьшить на половину значения этого элемента.

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

Заранее спасибо! give_rose.gif

Автор: Client 30.06.2008 15:25

Показывай что сделал. В чем проблема?

Автор: goosberry 30.06.2008 16:39

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 30.06.2008 18:00

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 30.06.2008 21:05

Большое спасибо! Я вообще-то тоже подумала, что здесь что-то с типом переменных...
А что означает div?

Автор: goosberry 30.06.2008 21:34

И ещё: когда min элемент =1, то исходный массив равен конечному...

Автор: Client 30.06.2008 21:42

div-деление с целью получения целой части.

Цитата
И ещё: когда min элемент =1, то исходный массив равен конечному...
Как массив задаешь?

Автор: goosberry 1.07.2008 10:43

Ну допустим, массив заполняется случайными числами, да и если с клавиатуры заполнять, то часто наименьшим значением является число 1.

Автор: samec 1.07.2008 20:14

используйте массив вещественных чисел.
Просто при минимальном элементе, равном 1, если используется массив целых чисел, следующий код

K:=min div 2;

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

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

на
K:=min / 2;

и получаем K=0.5. (min, K :real)