Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2016, 10:23   #1
захаркин
 
Регистрация: 22.09.2016
Сообщений: 3
По умолчанию ввести 3 числа а,b,c. Если не одно число не равно нулю, то написать в переменную k сред. арифметическое

Уважаемые. Помогите в чем ошибка. Задание: ввести 3 числа а,b,c. Если не одно число не равно нулю, то написать в переменную k сред. арифм..
Пишу в турбо паскале 7.1
Код:
 File  Edit  Search  Run  Compile  Debug  Tools  Options  Window  Help
╔═[■]═══════════════════════════════ 2.PAS ══════════════════════════════1═[↕]═╗
║var a,b,c:integer; k:real;                                                    ▲
║begin                                                                         ■
║readln(a,b,c);                                                                ▒
║if (a>0)and(b>0)and(c>0) then                                                 ▒
║                                                                              ▒
║k:=(a+b+c)/3;                                                                 ▒
║writeln(k:6:1                                                                 ▒
║)                                                                             ▒
║end.                                                                          ▒
если ввожу в одно из условий 0, то дает ответ 0

Ввожу в абспаскале
Код:
var a,b,c:integer; k:real;
begin
  writeln('введите 3 числа');
  readln(a,b,c);
  if 
  (a>0)and( b>0)and (c>0)
   then
  writeln(k);
  k:=(a+b+c)/3;
end.
если одно 0, то ничего не выводит. если любые 3 числа, во всех случаях ответ 0

______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 22.09.2016 в 10:27.
захаркин вне форума Ответить с цитированием
Старый 22.09.2016, 10:29   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в турбо вы сначала вычисляете k, а потом его выводите.

а в Pascal ABC сначала выводите k (там ноль) и только потом вычисляете.
Это неправильно. Нужно наоборот.

кроме того, условие Вы проверяете не то, что Вам задано.
Вам нужно проверять "число не равно нулю", а Вы проверяете, что число положительное (больше нуля).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.09.2016, 10:30   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так вы выводите k до присваивания значения, надо наоборот.

и в begin end оба действия заключить, иначе только первое относится к if, а второе всегда выполняется.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.09.2016, 11:59   #4
захаркин
 
Регистрация: 22.09.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
в турбо вы сначала вычисляете k, а потом его выводите.

а в Pascal ABC сначала выводите k (там ноль) и только потом вычисляете.
Это неправильно. Нужно наоборот.

кроме того, условие Вы проверяете не то, что Вам задано.
Вам нужно проверять "число не равно нулю", а Вы проверяете, что число положительное (больше нуля).
Благодарю.
захаркин вне форума Ответить с цитированием
Старый 22.09.2016, 12:01   #5
захаркин
 
Регистрация: 22.09.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так вы выводите k до присваивания значения, надо наоборот.

и в begin end оба действия заключить, иначе только первое относится к if, а второе всегда выполняется.
Благодарю.
захаркин вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ввести в консоль семизначное число и вывести среднее арифметическое (Java, Eclipse) Crazy_Max Помощь студентам 0 31.03.2016 19:30
Как скрыть поле, если оно равно нулю в Отчете Евгений 1234 Microsoft Office Access 0 24.08.2015 19:03
Ввести число. Если оно положительное, найти его квадратный корень. Если отрицательное - возвести в квадратВвести число. Если оно п FYNZIK Паскаль, Turbo Pascal, PascalABC.NET 1 18.02.2014 16:29
Данное натуральное число N и действительные, не равны нулю числа a1, ., aN SystemsS Visual C++ 0 06.02.2013 12:42
некоторое число оканчивается на 2, если эту цифру переместить на первое место, то число удвоится. написать программу поиска числа Noob325 Помощь студентам 6 06.12.2012 10:39