1 Востаннє редагувалося Q-bart (11.11.2014 20:33:14)

Тема: Програма працює правильно тільки Pascal.ABC

Для керування вогнем далекобійної артилерійської установки використовується радіозв'язок. Але він відбувається в умовах, коли супротивник створює радіоперешкоди, тому для забезпечення надійності передачі повідомлення (а це ціле число від 0 до 1000000) шифрується наступним чином: кожна цифра передається, а потім відразу ж повторюється ще стільки разів, як її значення. Наприклад, цифра "3" передається чотири рази, "0" один раз і т.д. і замість повідомлення 103 передається 1103333.
Напишіть програму, яка б забезпечувала таке шифрування.

Написав код

program firemaneger2;

var 
    P, s: string;
    i, d, j : integer; 
    m: array [1..7] of integer;
begin
s:='';
readln(p);
for i:=1 to length(p) do
val(p[i], m[i], d);

for i:=1 to length(p) do 
begin
s:=concat(s, p[i]);
   for j:=1 to m[i] do 
   s:=concat(s, p[i]);
end;
writeln(s);

end.

В Pascal.ABC все працює чудово, а на Turbo Pascal мутить щось таке

вводиш - 4123
виводить - 44444123

В чому проблема???

2 Востаннє редагувалося koala (11.11.2014 21:23:52)

Re: Програма працює правильно тільки Pascal.ABC

Замініть рядки 10-11 на

for i:=1 to length(p) do begin
  val(p[i], m[i], d);
  if d > 0 then writeln('Error converting "', p[i], '" to number on symbol ', d);
end;

Щось виводить?

Подякували: Torbins, Q-bart2

3

Re: Програма працює правильно тільки Pascal.ABC

Не можу перевірити чи воно тепер працює, Turbo PAscal  у вчителя, а в мене Pascal.ABC
Можете пояснити що означає той додатковий рядок і чому без нього не працювало... Буду безмежно вдячний..

4 Востаннє редагувалося Chemist-i (12.11.2014 18:00:34)

Re: Програма працює правильно тільки Pascal.ABC

Q-bart
d - лиш показує в якому саме символі вискочила помилка конвертації, а як 0 то помилки нема. Не думаю що проблема вирішена.
А той додатковий рядок і виводить помилковий (символ, який неможливо конвертувати) символ і його позицію.

Подякували: koala1

5

Re: Програма працює правильно тільки Pascal.ABC

То тоді помилка залишається,  бо при конвертації (напр. 4356) всі символи має конвертувати...

6

Re: Програма працює правильно тільки Pascal.ABC

Встановіть його собі і перевіряйте: http://www.softportal.com/software-1058 … l-pak.html