IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> не могу решить задачу... 8(
d00mik
сообщение 16.08.2005 0:47
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


совсем недавно я начел изучать паскаль так что в нём хорошо не шарю...
а паскаль я изучаю на вашем сайте (Уроки от Дмитриева Эдуарда) Урок 8 и там есть домашние задание
" Написать программу получения числа из отдельно введенных однозначных чисел. Для этого постарайтесь придумать свой алгоритм, реализующий цикл для ввода чисел. Концом ввода должен служить нуль."
как же это делается... ? sad.gif
кстати хотелось бы если у каждого домашнего задание были бы и ответы...

Сообщение отредактировано: d00mik - 16.08.2005 0:48
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kent
сообщение 16.08.2005 7:16
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 50
Пол: Мужской
Реальное имя: Андрей

Репутация: -  1  +


Можно вот так:

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.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 16.08.2005 8:03
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


зачем переводить цифры в строки и обратно?

var t : longint;
i : byte;

begin
t := 0;
reasdln(i);
while i <> 0 do
begin
t := t*10 + i;
end;
writeln(t);
end.



--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
FreeMan
сообщение 16.08.2005 8:47
Сообщение #4


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


Что то тут бесконечным циклом несёт. У тебя i в теле цикла не изменяется. То есть либо бесконечный цикл (при i<>0) или вообще без цикла (при i=0)


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 16.08.2005 10:25
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


virt, идея класная, но ты действительно ошибся немного smile.gif Я поправил :

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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
d00mik
сообщение 16.08.2005 11:43
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


о!спасибо всем щас всё испробую 8)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.08.2005 12:21
Сообщение #7


Гость






klem4,
smile.gif
if i<>0 then
t := t*10 + i;

так ли необходимо условие If i <> 0 Then... Если его убрать, что-то изменится?
 К началу страницы 
+ Ответить 
klem4
сообщение 16.08.2005 12:39
Сообщение #8


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Да! ведь если ее убрать, число t лишний раз домножется на 10 , и в конце будет лишний ноль. rolleyes.gif

Сообщение отредактировано: klem4 - 16.08.2005 12:39


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 16.08.2005 14:43
Сообщение #9


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


я просто забыл в цикле поставить 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.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 9:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"