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

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

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

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

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

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

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

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


image

Информатика (94 баллов) | 114 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

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

(142k баллов)
0

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.

0

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

0 голосов

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


Скачать вложение Текст (TXT)
(274 баллов)
0

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

0

спасибо

0

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

0

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

0

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

0

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