Паскаль "не умеет" читать числа напрямую. В случае "текстового ввода" он читает всё вводимое, как последовательность символов, которую затем анализирует и преобразует в соответствии со списком переменных в операторе ввода и их типом.
Завершается текстовый ввод в Паскале всегда нажатием клавиши Enter, посылающей последовательность символов с десятичными кодами 13 и 10 (CR - "возврат каретки" и LF- "перевод строки"), либо считыванием этих кодов из файла.
"Команда" Realln (на самом деле это не команда, а процедура) считывает и удаляет последовательность символов с кодами 13, 10, а Read - оставляет эти коды не считанными. Если после Read будет еще один оператор ввода, читающий СИМВОЛЬНЫЕ данные (string, char), то оставшиеся необработанными после предыдущего Read символы с кодами 13,10 будут восприняты, как вводимые, что неверно.
<u>Как итог: </u>только в случае, когда есть ввод символьных данных и эти данные вводятся не в единственном операторе ввода, перед вводом таких данных нужно указывать Readln. В прочих случаях разницы нет.
Var
a,b,c,d:integer;
begin
writeln('Введите первое число');
readln(a);
writeln('Введите второе число');
readln(b);
writeln('Введите третье число');
readln(c);
writeln('Введите четвертое число');
readln(d);
writeln('Среднее четырех чисел = ',(a+b+c+d)/4)
end.
Ответ:
100
Объяснение:
Если по дате рождения больше 100, то не даст зарегасться
#include <iostream>
#include <set>
#include <iterator>
using namespace std;
int main()
{
string s;
set<char> mySet;
set<char>::iterator it;
int k=0;
cout << "s = ", cin >> s, cout << endl;
for(int i=0;i<s.length();i++)
mySet.insert(s[i]);
for(it=mySet.begin(); it!=mySet.end(); ++it)
cout<<*it<<" ";
k=mySet.size();
cout << endl << "k = " << k;
return 0;
}
Возможно, не уверен, цепь питания