//Pascal ABC.NET v3.1 сборка 1172
var
ar: array of integer;
n, k2, k3, k4, k5, i: integer;
r: real;
begin
write('Сколько учеников?');
readln(n);
setlength(ar, n);
writeln('Введите оценки:');
for i := 0 to n - 1 do
begin
readln(ar[i]);
case ar[i] of
2: inc(k2);
3: inc(k3);
4: inc(k4);
5: inc(k5);
else
writeln('Не оценка');
exit;
end;
end;
writeln('2:', k2);
writeln('3:', k3);
writeln('4:', k4);
writeln('5:', k5);
write('Успеваемость=', (k3 + k4 + k5) / n * 100:0:1);
end.
Пример ввода:
Сколько учеников?6
Введите оценки:
2
2
3
4
5
5
Пример вывода:
2:2
3:1
4:1
5:2
Успеваемость=66.7
Учебник-5 запятых справа; кит-одна запятая слева; ель
1. Современное решение
<em>// PascalABC.NET 3.2, сборка 1363 от 17.12.2016</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
ReadlnString('>').ToCharArray.Select((c,i)->i.IsOdd?2*c:1*c).Println('')
end.
<u>Пример</u>
> СЛОВО
СЛЛОВВО
2. "Школьное" решение
var
s,s1:string;
i:integer;
begin
Write('>'); Readln(s);
s1:='';
for i:=1 to Length(s) do
if i mod 2<>0 then s1:=s1+s[i]
else s1:=s1+s[i]+s[i];
Writeln(s1)
end.
Формальные исполнители не понимают смысла алгоритма. Они только выполняют команды и не могут вносить изменения в алгоритм.
Примеры: ADSL модем, лазерный принтер, фотоэлемент, ЭВМ, устройство для оплаты банковской картой в супермаркете, собака (выполняет команды, не понимая их смысла), телевизор, стиральная машина, принтер и т.д.
Неформальные исполнители понимают смысл алгоритма и могут вносить в него коррективы. Пример: человек.