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

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

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

 
 Ответить  Открыть новую тему 
> Ввод данных
Bokul
сообщение 18.02.2006 23:48
Сообщение #1


Гуру
*****

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

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


Процедура должна брать 3 вещесвеных чесла, а потом передавать их программе.
Проверте пожалуйста код. Кажется она неправильно работает
Код

procedure data(var a,b,c:real);
var i: byte; ch:char; a1,b1,c1:string; code:integer;
begin
writeln(' Enter  coefficients of equation ');
i:=0;
repeat
read(ch);
if (ch=#13) then
begin
  inc(i);
   if i=1 then
    val(a1,a,code);
  if i=2 then
    val(b1,b,code);
  if i=3 then
    val(c1,c,code);
  end
else
begin
  if i=0 then
    a1:=a1+ch;
  if i=1 then
     b1:=b1+ch;
  if i=2 then
     c1:=c1+ch;
end;
until i=3;
end;


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.02.2006 0:10
Сообщение #2


Гость






Bokul, работает действительно неправильно... Вот так - вроде нормально...
uses crt;

procedure data(var a,b,c:real);
var i: byte; ch:char; a1,b1,c1:string; code:integer;
begin
writeln(' Enter coefficients of equation ');
i:=0;
repeat
ch := readkey;
write(ch);
if (ch=#13) then begin
inc(i); writeln;
if i=1 then val(a1,a,code);
if i=2 then val(b1,b,code);
if i=3 then val(c1,c,code);
end
else begin
if i=0 then a1:=a1+ch;
if i=1 then b1:=b1+ch;
if i=2 then c1:=c1+ch;
end;
until i=3;
end;

Но объясни мне, почему бы не читать числа напрямую через ReadLn? Зачем через строку? blink.gif
 К началу страницы 
+ Ответить 
Bokul
сообщение 19.02.2006 0:21
Сообщение #3


Гуру
*****

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

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


Ты действительно прав - через ReadLn действительно проще.
Чтото я перемудрил, но всеравно пасибо за ответ


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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