ŤằтьЯℌa2005
20.07.2022 12:07

Уровень A. Напишите программу, которая находит среднее арифметическое всех чисел, записанных в файле в столбик, и выводит результат в другой файл.(ошибка времени исполнения)

var
a, b, c: integer;
d: text;
begin
assign(d,'input.txt');
reset(d);
c:=0;
b:=0;
while not eof do
begin
readln(d,a);
c:= c + a;
b:= b + 1;
end;
close(d);
assign (d,'output.txt');
rewrite(d);
write(d,c/b);
close(d);
end.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Лимон113848448
17.09.2021 02:46

Процедуры Read и Readln в языках семейства Паскаль (Pascal) предназначены для организации ввода данных с клавиатуры или их чтения из файла. Процедура Read завершает чтение непосредственно после получения последнего символа исходных данных, ограниченного пробелом или признаком смены строки (который получается при нажатии клавиши Enter). Процедура Readln, кроме того, осуществляет принудительный переход к следующей строке, пропуская признак смены строки.

Пример. Пусть надо ввести значения для переменных a и b типа integer.

Read(a, b); выполнит такой ввод независимо от того, как разделять значания - одним или более пробелами, нажатием Enter или комбинацией этих действий.

Readln(a, b); поведет себя точно так же. Поэтому нет разницы, какую из двух процедур использовать (зато Read короче писать!) для ввода данных числового типа.

Но для ввода символов и символьных строк разница есть!

Пробел и признак смены строки - это тоже символы, поэтому тут нужно использовать только Readln, поскольку признаком разделения данных для строк является только смена строки. Строка также может быть и пустой, т.е. не содержать символов.

Поэтому правило такое: если нет ввода символьных данных - используем Read. Если вводятся символьные данные, используем Readln, причем, если перед вводом таких данных вводятся числовые данные, их также надо вводить посредством Readln. Почему? Чтобы после Read не остался ко вводу признак смены строки и не получить в качестве вводимой затем строки пустую.

Подробнее обо всем этом можно прочесть в литературе по языку Паскаль. Например, в книге "PascalABC.NET: Введение в современное программирование", стр 214. Она легко ищется в Интернет, расположена на официальном сайте PascalABC.NET и бесплатна для скачивания.

0,0(0 оценок)
Ответ:
математик202
01.09.2020 14:43
Ищем в таблице истинности строку, дающую F=1. Это нижняя строка.
Теперь надо из выражений 1-4 выбрать то, которое при указанном наборе значений x1-x7 даст истинное значение.
Проверяем выражения, содержащие операции "И". Каждое такое выражение будет истино, если все его элементы истины.
1) х1 должно быть истинным, а у нас х1 ложно. Выражение отвергаем.
4) Должны быть ложны х1, х3, х6 и х7. В точности, как у нас. Походит.
Два оставшихся выражения содержат операции "ИЛИ". Такое выражение будет истинно, если истинен хоть один его элемент.
2) х1 должен быть истинным, у нас он ложен, у нас он истинный, х3 должен быть истинный, у нас он должный, х4 должен быть ложный, у нас он истинный, х5,х6, х7 - все должны быть истинными и у нас х5 истинный. Подходит
3) х1 должен быть ложным, у нас он ложный. Подходит.
Теперь проверяем, будут ли отобранные нами выражения 2), 3) и 4) давать ложное значение при наборе параметров из первых двух строчек.
4) х1 истинно в обоих проверяемых наборах параметров, а оно должно быть ложным. В связи с этим выражение вернет значение ложно, что и ожидается. Подходит, выражение все проверки.
2) х1 должно быть ложным, чтобы все выражение было ложным, а во втором наборе таблицы истинности указано истинное значение. Выражение отвергаем.
3) х1 должно быть истинным, чтобы все выражение было ложным, а в первом наборе таблицы истинности указано истинное значение. Выражение отвергаем.

Решение: только последнее (четвертое) выражение удовлетворяет условиям задачи.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота