Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/55: Рейтинг темы: голосов - 55, средняя оценка - 4.93
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
1

Найти среднее среди трех введенных чисел

10.09.2016, 16:40. Показов 10498. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача "Определить среднее из трёх чисел".
Мой код :
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Program TheAverageOfNumbers;
var a,b,c : Integer;
Begin
    Writeln('Type three numbers');
    Readln(a,b,c);
    If (b>a) and (b<c) then
    Writeln (b)
    else
    If (b<a) and (b>c) then
    Writeln(b)
    else
    If (a<b) and (a>c) then
    Writeln (a)
    else
    If (a>b) and (a<c) then
    Writeln (a)
    else
    If (c<b) and (c>a) then
    Writeln (c)
    else
    If (c>b) and (c<a) then
    Writeln(c)
    else
    If (a=b) or (a=c) or (b=c) or ((a=b) and (b=c)) then 
    Writeln ('Error');
End.
Вроде бы работает.
А можно как-то проще?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2016, 16:40
Ответы с готовыми решениями:

Определить среди введенных чисел наибольшее и наименьшее числа, а также среднее значение
Ввод пользователем заранее не известного количества чисел (выбрать признак окончания ввода -...

Среди 10 чисел введенных с клавиатуры найти количество положительных
Написать программу среди 10 чисел введенных с клавиатуры найти кол-во положительных?

Найти наибольшее и наименьшее среди трех чисел
Нужно все лишь найти наибольшее и наеменьшее: a, b, c. Пожалуста, кому не сложно, решите задачку,...

Найти минимум среди введенных чисел
Создатькоторая вводит n количество числов и n число, определяет наименьший из введенные числа....

10
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.09.2016, 16:44 2
Лучший ответ Сообщение было отмечено Notoriously как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
var a,b,c,mn,mx,x : Integer;
Begin
    Writeln('Type three numbers');
    Readln(a,b,c);
    if a>b then mx:=a else mx:=b;
    if c>mx then mx:=c;
    if a<b then mn:=a else mn:=b;
    if c<mn then mn:=c;
    x:=a+b+c-mn-mx;
    Writeln (x);
End.
1
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
10.09.2016, 16:49 3
Если не учитывать опасность переполнения, то
https://www.cyberforum.ru/cgi-bin/latex.cgi?avg:= (a+b+c) - min(min(a,b), c) - max(a, max(b,c))
Или сделать сортировку по возрастанию методом пузырька (определив процедуру swap, как обмен значений переменных):
Pascal
1
2
3
4
5
6
7
  if a<b then
    swap(a,b);
  if b<c then
    swap(b,c);
  if a<b then
    swap(a,b);
  writeln(c);
1
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
10.09.2016, 16:51  [ТС] 4
Puporev , спасибо.
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
10.09.2016, 16:51 5
Припозднился я
1
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
10.09.2016, 16:56  [ТС] 6
ФедосеевПавел , спасибо, то что написано выше, я понял.
А вот до изучения "swap" еще не дошёл. Что она делает? Меняет местами значения переменных в памяти компьютера?
Получается, что при введенных 1,3,2=>3,1,2=>3,2,1
И на вывод же идет 1? Или нет?
0
5 / 5 / 7
Регистрация: 02.03.2016
Сообщений: 46
10.09.2016, 16:59 7
ну, если в свап отправить a=1 и b=2, то на выходе a будет равно 2, а b равно 1
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
10.09.2016, 17:04 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Сейчас полностью состряпаю. Минуточку...

Добавлено через 4 минуты
Ранее я ошибся и вывел c, а надо было среднее - b. Сейчас правильно вывожу среднее
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program Compare;
 
  procedure Swap(var a, b: integer);
  var
    temp: integer;
  begin
    temp := a;
    a := b;
    b := temp;
  end;
 
var
  a, b, c: integer;
begin
  a := 10;
  b := 0;
  c := 20;
  if a < b then
    swap(a, b);
  if b < c then
    swap(b, c);
  if a < b then
    swap(a, b);
  writeln(b);
end.
1
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
10.09.2016, 17:07  [ТС] 9
Всё понял. Спасибо!
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
10.09.2016, 17:08 10
Это почти реализация сортировки пузырьком.

Добавлено через 32 секунды
Что-то я сегодня невпопад с задержкой отвечаю.
0
5 / 5 / 7
Регистрация: 02.03.2016
Сообщений: 46
10.09.2016, 17:17 11
Бывает
0
10.09.2016, 17:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2016, 17:17
Помогаю со студенческими работами здесь

Запросить у пользователя N различных чисел. Найти среднее арифметической всех введенных чисел
Доброго времени суток, помогите написать программу на Pascal. Текст задачи: Запросить у...

Вычислить среднее арифметическое положительных чисел и найти максимальный элемент среди отрицательных чисел
Помогите пожалуйста=) Дан одномерный массив чисел {A},к=1..9. Вычислить среднее арифметическое...

Найти среднее арифметическое введенных чисел, а также максимальное и минимальное значения
Помогите написать программу к задаче и составить блок схему! Натуральные числа вводятся с ...

Найти сумму, среднее значение, меньшее и большее из трех введенных чисел
Не могу понять как решть задачу: Программа которая вводит с клавиатуры три целых числа и печатает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru