Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Пожалуйста, помогите решить задачу (http://www.tehnari.ru/f41/t92999/)

Мага 10.12.2013 18:58

Пожалуйста, помогите решить задачу
 
Задача не сложная вроде как , но я не посещал занятия программирования весь семестр через неделю экзамен ( вот задача : написать программу которая запрашивает с клавиатуры вести целые числа пока не будет веден 0 , и вывести среднее арифметическое веденных чисел. tehno010tehno010:tehnari_ru_267:

Мага 10.12.2013 19:13

Хотя бы начало напишите плиз дальще постараюсь продолжить...

AlexZir 10.12.2013 19:18

Язык программирования какой?
Вот на алгоритмическом, разбирайтесь:
Цитата:

алг сумма
нач цел т, вещ с,ч
. с:=0 |задаем начальное значение переменной суммы
. т:=0 |задаем начальное значение переменной счетчика введенных чисел
. ч:=111111111 |задаем произвольное значение переменной текущего числа
. нц пока ч<>0 |заводим цикл ввода чисел, условием выхода из цикла ставим значение ч=0
. . ввод ч |вводим текущее число
. . т:=т+1 |счетчик введенных чисел увеличиваем на 1
. . с:=с+ч |сумму увеличиваем на введенное число
. кц
. с:=с/т |вычисляем среднее арифметическое
. вывод"среднее арифметическое введенных чисел равно "
кон

Данный алгоритм рассматривает введенный нуль как одно из значащих чисел, если же 0 не нужно учитывать при вычислении среднего арифметического, то алгоритм принимает следующий вид (даю без комментариев):
Цитата:

алг сумма
нач цел т, вещ с,ч
. с:=0
. т:=0
. ч:=111111111
. нц пока ч<>0
. . ввод ч
. . т:=т+1
. . если ч<>0
. . . то с:=с+ч
. . все
. кц
. с:=с/т
. вывод"среднее арифметическое введенных чисел равно "
кон


Мага 10.12.2013 20:33

Pascal ABC . Сейчас проверю что получается спасибо!

AlexZir 10.12.2013 20:41

На Pascal можно использовать цикл repeat...until в первом случае, и while... во втором.

Мага 10.12.2013 20:44

Немного не получается ..

Мага 10.12.2013 20:49

program tex;
uses crt;
var
a, s : integer;
begin
s := 0;
repeat
write('vvedite chislo (0 = konec vvoda): ');
readln(a);
s := s + a;
writeln('summa ravna: ', s);
until a = 0;
readln
end.

Мага 10.12.2013 20:50

вот так получается но задача полностью не выполнена же ?

Vladimir_S 10.12.2013 20:55

Цитата:

Сообщение от Мага (Сообщение 979385)
вот так получается но задача полностью не выполнена же ?

Ладно, раз Вы сами хоть что-то попытались сделать - помогу. Вот Вам рабочий код:
Код:

Var
 A,Sum,n:Integer;
Begin
 Sum:=0;
 n:=0;
 Repeat
  Write('Next number: ');
  Readln(A);
  if A<>0 then
  begin
    Inc(n);
    Inc(Sum,A);
  end;
 Until A=0;
 If n<>0 then Writeln('Reasult= ',Sum/n:0:3);
 Readln
End.


Мага 10.12.2013 20:58

спасибо ! я вообще не то делал ..


Часовой пояс GMT +4, время: 01:19.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.