Другие языки программирования и технологии
(PASCAL)помогите найти ошибку в коде задачи, и исправить
program symma_masiva; uses crt; var a:array[1..10] of real; {Объявляем массив} Summ:real; {Сумма всех элементов массива} i,S1,S2:integer; {Параметр цикла For} procedure vvod_massiva(S1,S2:integer ; var Summ:real) ; {процедура ввода масива и подсчета суммы} Begin {Заполняем массив числами} For i:=1 to 10 do begin write('Введи элемент массива: [',i,'] '); readln(a); end; Summ:=0; {Обнуляем нашу сумму} For i:=1 to 10 do Summ:=Summ+a; write('Сумма всех элементов массива=',Summ); readln; {вывод суммы на экран} end; begin {вызов процедур по имени} vvod_massiva(S1,Summ); vvod_massiva(S2,Summ); if S1>S2 then writeln('больше') else writeln('меньше') end.
Должно быть вот так:
program symma_masiva;
function vvod_massiva: real;{процедура ввода масива и подсчета суммы}
var
i:integer;
a: array[1..10] of real; {Объявляем массив}
Summ:Real;
begin
{Заполняем массив числами}
Summ := 0; {Обнуляем нашу сумму}
for i := 1 to 10 do
begin
write('Введи элемент массива: [', i, '] ');
readln(a[ i]);
Summ := Summ + a[ i];
end;
writeLn('Сумма всех элементов массива=', Summ);
vvod_massiva := Summ;
end;
var
S1, S2 : Real;
begin{вызов процедур по имени}
S1 := vvod_massiva;
S2 := vvod_massiva;
if S1 > S2 then writeln('больше') else writeln('меньше')
end.
Только в конце нужно ещё один вариант условия: если S1 = S2,
а то не каширно получается...
program symma_masiva;
function vvod_massiva: real;{процедура ввода масива и подсчета суммы}
var
i:integer;
a: array[1..10] of real; {Объявляем массив}
Summ:Real;
begin
{Заполняем массив числами}
Summ := 0; {Обнуляем нашу сумму}
for i := 1 to 10 do
begin
write('Введи элемент массива: [', i, '] ');
readln(a[ i]);
Summ := Summ + a[ i];
end;
writeLn('Сумма всех элементов массива=', Summ);
vvod_massiva := Summ;
end;
var
S1, S2 : Real;
begin{вызов процедур по имени}
S1 := vvod_massiva;
S2 := vvod_massiva;
if S1 > S2 then writeln('больше') else writeln('меньше')
end.
Только в конце нужно ещё один вариант условия: если S1 = S2,
а то не каширно получается...
Не на что отвечать - код сильно искажен. Во всяком случае, параметр цикла i должен быть локальным. Кроме того, в процедуре vvod_massiva три формальных парамера, но два локальных. А в конце вообще какой-то бред, возможно, из-за искаженного кода.
во первых, зачем тебе параметры S1 и S2 если в процедуре ты их не используешь.
Во вторых, ты сравнивать должна суммы, а не S1 и S2
в третьих, вызов процедур во второй раз перезапишет сумму первого массива
Во вторых, ты сравнивать должна суммы, а не S1 и S2
в третьих, вызов процедур во второй раз перезапишет сумму первого массива
Ошибок много :)
Но! Чтобы программа заработала, достаточно правильно подсчитать сумму элементов массива.
Массив - в переменной a. Эта переменная - массив, а не скаляр. Поэтому нельзя эту переменную добавлять куда-либо. Ошибочно выражение Summ:=Summ+a;. Надо так: Summ:=Summ+a[ i ];
Но! Чтобы программа заработала, достаточно правильно подсчитать сумму элементов массива.
Массив - в переменной a. Эта переменная - массив, а не скаляр. Поэтому нельзя эту переменную добавлять куда-либо. Ошибочно выражение Summ:=Summ+a;. Надо так: Summ:=Summ+a[ i ];
Чет не дает на английском писать.
Возможно ошибка в том что массив вводить в процедуру нужно типизированным, т. е. создать новый тип массив из дестяти реловских чисел, а в объявлении процедуры присвоить С1 и С2 этому типу.
Возможно ошибка в том что массив вводить в процедуру нужно типизированным, т. е. создать новый тип массив из дестяти реловских чисел, а в объявлении процедуры присвоить С1 и С2 этому типу.
А что он пишет? И это что за паскаль? На моем немного другие операторы...
Похожие вопросы
- помогите найти ошибку в коде на Си
- Помогите найти ошибку в коде
- Помогите найти ошибку в коде. делфи
- Помогите найти ошибки в коде (паскаль)
- Помогите найти ошибку в коде с++. Скорее всего ошибка в сравнении строк.
- помогите найти ошибку в коде VBA exel !
- помогите найти ошибку в коде. ПАскаль
- Помогите найти ошибку в коде в паскале
- Помогите найти ошибку...Pascal (строки)
- Помогите найти ошибку в задачи,Паскаль...