Помогите написать программу ** PascalABCNET ** вход программе подается последовательность...

0 голосов
139 просмотров

Помогите написать программу на PascalABCNET

На вход программе подается последовательность чисел от 1 до 9, заканчивающаяся нулем. Всего будет введено не более 100000 чисел. Подсчитайте в этой последовательности количество единиц, количество двоек, количество троек и т. д. и выдайте результат. В выходных данных всегда должно быть 9 чисел.

ВХОДНЫЕ ДАННЫЕ

Дана последовательность цифр от 1 до 9, заканчивающаяся нулем.

ВЫХОДНЫЕ ДАННЫЕ

Выведите через пробел количество единиц, двоек, …, девяток в этой последовательности


image

Информатика (94 баллов)
Дано ответов: 2
0 голосов
Архангел (142k баллов)
 
Правильный ответ

Var
  n:array[1..9] of integer;
  i,k:integer;
  c:char;
begin
  k:=Ord('0');
  for i:=1 to 9 do n[i]:=0; //очистка счетчиков
  Writeln('Вводите цифры от 1 до 9, 0 конец ввода');
  repeat
    Read(c);
    if c in ['1'..'9'] then Inc(n[Ord(c)-k])
  until c='0';
  for i:=1 to 9 do Write(n[i],' ')
end.

Тестовое решение:
Вводите цифры от 1 до 9, 0 конец ввода
1
4
3
5
3
9
2
4
1
1
5
6
0
3 1 2 2 2 1 0 0 1

оставил комментарий Начинающий (274 баллов)

var
n:array[0..9] of integer;
i,c:integer;
begin
for i:=0 to 9 do n[i]:=0; //очистка счетчиков
Writeln('Вводите цифры от 1 до 9, 0 конец ввода');
repeat
Read(c);
inc(n[c]);
until c=0;
for i:=1 to 9 do Write(n[i],' ')
end.

оставил комментарий Архангел (142k баллов)

В Вашем варианте нет "защиты от дурака". Если по ошибке или намеренно будет введено что-то, отличное от одной цифры, например, число 10, программа аварийно завершится по неверной адресации.

0 голосов
Начинающий (274 баллов)

Программа написана немного через ****, но работает четко.


Скачать вложение Текст (TXT)
оставил комментарий (94 баллов)

Program29.pas(5) : Повторно объявленный идентификатор x

оставил комментарий (94 баллов)

спасибо

оставил комментарий Начинающий (274 баллов)

Первая строчка скопировалась 2 раза... уже исправил.

оставил комментарий Архангел (142k баллов)

1. Для чего метка m? 2. Вы забыли указать, что это работает не во всякой версии Паскаля.

оставил комментарий Архангел (142k баллов)

Хотя... неправ, в условии указана версия.

оставил комментарий Начинающий (274 баллов)

Метку забыл убрать. Исправлено.

...