Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2010, 21:50   #1
Artemiyp
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 2
По умолчанию Дано 12345 нужно вывести 54321, составил программу, сказали что не правильно

Во входном файле находится одно целое неотрицательное число N (0<=N<=2000000000).

В выходной файл выведите перевернутое число N задом наперед.

Пример
in out
1 1
12 21
12345 54321
10 01

Вот составил программу, сказали что не работает:
Код:
program nazva;
var a,b : string; i:integer;
begin
assign(input, 'revert.in'); 
reset(input);
assign(output, 'revert.out'); 
rewrite(output);
read(a);
for i:=0 to length (a) do begin
b:=b+a[length(a)-i];
end;
write(b);
end.
Помогите, пожалуйста, разобраться что не так?
Artemiyp вне форума Ответить с цитированием
Старый 22.12.2010, 22:12   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

C Чего бы она работать то должна?
тогда уж так
Код:
program nazva;
var a,b : string; i:integer;
begin
assign(input, 'revert.in');
reset(input);
assign(output, 'revert.out');
rewrite(output);
read(input,a);
for i:=0 to length (a)-1 do begin
b:=b+a[length(a)-i];
end;
write(output,b);
close(input);
close(output);
end.
.
vovk вне форума Ответить с цитированием
Старый 23.12.2010, 08:22   #3
Artemiyp
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 2
По умолчанию

Спасибо, оказалась, что ошибка была именно в цикле и правильно нужно было сделать, как вы указали "length (a)-1"
Artemiyp вне форума Ответить с цитированием
Старый 23.12.2010, 08:59   #4
iBuTTHead
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 35
По умолчанию

Зачем в цикле операторные скобки, если в теле цикла находится только один оператор.
iBuTTHead вне форума Ответить с цитированием
Старый 23.12.2010, 11:56   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

for i:=1 to length (a) do begin // в строке (a: string) нумерация как раз С ЕДИНИЦЫ.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.12.2010, 12:20   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
for i:=1 to length (a) do begin // в строке (a: string) нумерация как раз С ЕДИНИЦЫ.
Да нумерация строки с 1, но i используется не как идентификатор номера, а как переменная участвующая в рассчёте идентификатора
Код:
a[length(a)-i]
так что всё правильно.

ЗЫ Другое дело, что цикл можно было организовать подругому, к примеру for ... downto .... do чтоб облегчить чтение , но это не принципиально.

Последний раз редактировалось vovk; 23.12.2010 в 12:24.
vovk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано вещественное число X и целое число N (> 0). Вывести X – X3/3! + X5/5! – ... + (–1)NX2N+1/(2N+1)!? Ахилес Помощь студентам 2 20.05.2010 20:34
Дано число, вывести символы... Tiny Помощь студентам 5 11.03.2010 08:42
дано трехзначное число.вывести число,полученное при перестановки цифр десятков и сотен исходдного числа. Kenny_mackormik Помощь студентам 7 12.03.2009 15:18
составил программу ,но ненравиться механизм работы.помогите улучшить Василийпрог Помощь студентам 1 23.11.2008 11:38