Показать сообщение отдельно
Старый 03.11.2011, 10:33   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от zaaag Посмотреть сообщение
а можете проверить ещё одну задачу, правильно ли?
В целом - да, всё правильно. Но есть несколько, скажем так, небольших шероховатостей непринципиального характера.
1. Для переменной sum лучше выбрать формат LongInt - мало ли, какие числа вводятся и сколько, может получиться так, что сумма выскочит за границы формата Integer (32000 с копейками).
2. Ввод чисел желательно оформить с экранной подсказкой - пустой экран с моргающим маркером плохо смотрится.
3. Есть некая тонкость с оператором ввода. Лучше использовать не read, а readln. Не буду вдаваться в подробности, но read - "плохой" оператор, он как бы не закрывает ввод, а оставляет систему в ожидании следующего ввода, что приводит, в частности, к несрабатыванию остановок, см. п.4.
4. В конце программы желательно поставить команду readln без параметров. Дойдя до нее, программа остановится и покажет выведенный на экран результат расчета. Но это произойдет только, если в программе для ввода используются операторы readln, а не read.
5. Для среднего лучше (просто красивее) использовать форматный вывод. Например, формат 0:3 означает, что число будет выведено с тремя знаками после десятичной точки.
С учетом поправок:
Код:
program qw;
var
 tmp, zero, total: integer;
 sred: real;
 sum:longint;
begin
 zero:=0;
 total:=0;
 sum:=0;
 repeat
  write('Введите число: ');
  readln(tmp);
  if tmp<>777 then
   begin
    inc(total);
    sum:=sum+tmp;
    if tmp=0 then inc(zero);
   end;
 until tmp=777;
 sred:=sum/total;
 writeln('Всего чисел: ', total, ' Из них нулей - ', zero, ' Среднее арифметическое = ', sred:0:3);
 readln
end.
Но, повторяю, все эти поправки - в основном "косметического" характера. Принципиально же программа составлена правильно.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070