![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
d00mik |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
совсем недавно я начел изучать паскаль так что в нём хорошо не шарю...
а паскаль я изучаю на вашем сайте (Уроки от Дмитриева Эдуарда) Урок 8 и там есть домашние задание " Написать программу получения числа из отдельно введенных однозначных чисел. Для этого постарайтесь придумать свой алгоритм, реализующий цикл для ввода чисел. Концом ввода должен служить нуль." как же это делается... ? ![]() кстати хотелось бы если у каждого домашнего задание были бы и ответы... Сообщение отредактировано: d00mik - 16.08.2005 0:48 |
![]() ![]() |
kent |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 50 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Можно вот так:
Program ReceptionOfNumber;
uses Crt;
var number : Extended;
digit,code : Integer;
Temp,S : String;
begin
Clrscr;{Очищаем экран}
WriteLn('Input digits:');
S := '';{Обнуляем строку}
repeat{Начало цикла}
ReadLn(digit);{Вводим цифру}
Temp := '';{Обнуляем строку}
str(digit,Temp);{Преобразуем число в строку}
S := S + Temp;{Склеиваем строки}
until digit = 0;{Если цифра равна нулю заканчиваем цикл}
val(S,number,code);{Преобразуем строку в число}
WriteLn('Result: ',number,';');{Выводим результат}
ReadKey;{Ждем нажатия клавиши для выхода из программы}
end.
|
virt |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
зачем переводить цифры в строки и обратно?
var t : longint;
i : byte;
begin
t := 0;
reasdln(i);
while i <> 0 do
begin
t := t*10 + i;
end;
writeln(t);
end.
-------------------- |
FreeMan |
![]()
Сообщение
#4
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что то тут бесконечным циклом несёт. У тебя i в теле цикла не изменяется. То есть либо бесконечный цикл (при i<>0) или вообще без цикла (при i=0)
-------------------- бб
|
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
virt, идея класная, но ты действительно ошибся немного
![]() uses crt;
var t : longint;
i : byte;
begin
clrscr;
t := 0;
repeat
readln(i);
if i<>0 then
t := t*10 + i;
until i=0;
writeln(t);
readln;
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
d00mik |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
о!спасибо всем щас всё испробую 8)
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
klem4,
![]() if i<>0 then
t := t*10 + i;
так ли необходимо условие If i <> 0 Then... Если его убрать, что-то изменится? |
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Да! ведь если ее убрать, число t лишний раз домножется на 10 , и в конце будет лишний ноль.
![]() Сообщение отредактировано: klem4 - 16.08.2005 12:39 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
virt |
![]()
Сообщение
#9
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
я просто забыл в цикле поставить readln(i);
var t : longint;
i : byte;
begin
t := 0;
reasdln(i);
while i <> 0 do
begin
t := t*10 + i;
readln(i);
end;
writeln(t);
end.
-------------------- |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 12:30 |