Другие языки программирования и технологии
Проверьте плз прогу правильно написал или нет
среднее арифметическое одномерного массива Program x; Var A:array [1..n] of integer; s,k:integer; Begin For i:=1 to n do Read (A) For i:=1 to n do s:=s+A; k:=k+1; s:=s/k; writeln ('s=',s); End.
среднее арифметическое одномерного массива
Program x;
Var A:array [1..n] of integer;
s,k:integer;
Begin
For i:=1 to n do Read (A)
For i:=1 to n do
начало цикла
s:=s+A;
k:=k+1;
не вижу конца цикла тут. синтаксис? Паскаля? не помню
s:=s/k;
writeln ('s=',s);
End.
s моржет быть не обязацельно целым. опять же не помню округляет язык этот сам или нет, и в постановке задачи надо целое или нет получить
Program x;
Var A:array [1..n] of integer;
s,k:integer;
Begin
For i:=1 to n do Read (A)
For i:=1 to n do
начало цикла
s:=s+A;
k:=k+1;
не вижу конца цикла тут. синтаксис? Паскаля? не помню
s:=s/k;
writeln ('s=',s);
End.
s моржет быть не обязацельно целым. опять же не помню округляет язык этот сам или нет, и в постановке задачи надо целое или нет получить
Я не знаю Паскаля, но тем не менее мне кажется, что программа не будет правильно работать. Во-первых, что означает предложение
For i:=1 to n do Read (A)
Наверное вы должны читать в цикле каждый раз в разный элемент массива, а потому должно быть Read( A( i ) );
То есть для A вы должны указать индекс элемента, в который вы считываете данные. Я только не знаю, он указывается в круглых, или в квадратных скобках. Кроме того не забывайте после предложения ставить точку с запятой. Она у вас в этом предложении отсутствует.
Та же проблема и в предложении
s:=s+A;
То есть после A авы не указали индекс элимента этого массива.
Далее, как я понимаю, два предложения после цикла должны принадлежать этому циклу, а потому они должны быть объединены, то есть вместо
For i:=1 to n do
s:=s+A;
k:=k+1;
должно быть
For i:=1 to n do
begin
s:=s+A;
k:=k+1;
end;
Затем вы не установиили начальное значение для s и к! Нужно было их инициализировать нулем, прежде чем прибавлять к ним что-то.
Более того на мой взгляд переменная k вообще не нужна, так как число элементов в массиве известно и по определению массива равно n. То есть чтобы получить среднее достаточно вычисленную сумму s поделить на n.
Ну, а самое главное вы не определили в программе значение для n.
Кроме того я заметил, что в вышестоящем комментарии вам предлагают объявить переменную s как Real. На самом деле этого делать не надо! У вас массив целых чисел и следовательно вы ищите целое значение среднего арифметического!
For i:=1 to n do Read (A)
Наверное вы должны читать в цикле каждый раз в разный элемент массива, а потому должно быть Read( A( i ) );
То есть для A вы должны указать индекс элемента, в который вы считываете данные. Я только не знаю, он указывается в круглых, или в квадратных скобках. Кроме того не забывайте после предложения ставить точку с запятой. Она у вас в этом предложении отсутствует.
Та же проблема и в предложении
s:=s+A;
То есть после A авы не указали индекс элимента этого массива.
Далее, как я понимаю, два предложения после цикла должны принадлежать этому циклу, а потому они должны быть объединены, то есть вместо
For i:=1 to n do
s:=s+A;
k:=k+1;
должно быть
For i:=1 to n do
begin
s:=s+A;
k:=k+1;
end;
Затем вы не установиили начальное значение для s и к! Нужно было их инициализировать нулем, прежде чем прибавлять к ним что-то.
Более того на мой взгляд переменная k вообще не нужна, так как число элементов в массиве известно и по определению массива равно n. То есть чтобы получить среднее достаточно вычисленную сумму s поделить на n.
Ну, а самое главное вы не определили в программе значение для n.
Кроме того я заметил, что в вышестоящем комментарии вам предлагают объявить переменную s как Real. На самом деле этого делать не надо! У вас массив целых чисел и следовательно вы ищите целое значение среднего арифметического!
N не определено как минимум.
Program x;
Var A:array [1..10] of integer;
k,i:integer; s:real;
Begin
s:=0; k:=0;
For i:=1 to 10 do
Read (A[ i ]);
For i:=1 to 10 do
begin
s:=s+A[ i ];
k:=k+1;
end;
s:=s/k;
writeln ('s=',s:3:1);
End.
Var A:array [1..10] of integer;
k,i:integer; s:real;
Begin
s:=0; k:=0;
For i:=1 to 10 do
Read (A[ i ]);
For i:=1 to 10 do
begin
s:=s+A[ i ];
k:=k+1;
end;
s:=s/k;
writeln ('s=',s:3:1);
End.
нет.... не совсем... напиши мне в агент. я скажу где ошибки)
Похожие вопросы
- как научиться программы писать? через какую прогу легче написать?
- Подскажите, как правильно написать сортировку на СИ++ (два вложенных цикла)...
- Здравствуйте, уважаемые. Мне бы хотелось понять, как правильно написать свой сайт?
- аус лоджик(может не правильно написал) , что делает конкретно? только на простом языке если можно
- Что такое ДДОС (может не правильно написал) атака?
- Как правильно написать код главной страницы, чтобы поисковик распознал разделы сайта?
- Как правильно написать программу по заданию?
- Не могу правильно написать else if на Паскале
- Нужно написать программу, на нахождения бессектрисы треугольника, если пользователем задано длину плз напишите прогу С++
- напишите проги в ПАСКАЛЕ плиз!!!очень надо.