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

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

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

 
 Ответить  Открыть новую тему 
> литеры...я не проходил...а вы?, integer, real, boolean, литеры.
Archie
сообщение 17.10.2007 20:16
Сообщение #1


Новичок
*

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

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


integer, real, boolean, литеры.
Литеры в операторах ветвления, цикла. Ввод/вывод литерных дан-
ных.Ребят...помогите плиз - я эти литеры не проходил и не знаю даж что это...
Используя только литерный ввод, ввести задан-
ное вещественное число (за ним - пробел), записанное по
правилам языка Паскаль, и присвоить его вещественной
переменной X.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.10.2007 20:47
Сообщение #2


Гость






Цитата
я эти литеры не проходил и не знаю даж что это
Символы это... Char-ы, в смысле...

"используя только литерный ввод" - имеется в виду, что тебе нельзя пользоваться оператором Read/Readln читающим Real, можно читать только по одному символу с консоли...
 К началу страницы 
+ Ответить 
Archie
сообщение 17.10.2007 22:23
Сообщение #3


Новичок
*

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

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


ну а кто нить может решитЬ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.10.2007 22:28
Сообщение #4


Гость






Может... А ты можешь сам хотя бы начать? Если за тебя все решить, тебе что, это как-то поможет?
 К началу страницы 
+ Ответить 
Archie
сообщение 17.10.2007 22:42
Сообщение #5


Новичок
*

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

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


я просто даже не представляю...мы такое не делали...лекция по этой теме будет в понедельник а сдать нужно в субботу...йа чо т даж логически не могу додуматься как это сделать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 19.10.2007 9:07
Сообщение #6


Гуру
*****

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

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


В цикле пока не пробел
читать символ (readkey)
если символ цифра (in '0'..'9') или точка или 'E' или '+' или '-' то
добавить символ в строку
конец цикла
перевести строку в число (val)
У val есть возможность отследить ошибку. (есть примечание от Volvo по поводу глюков/фичей val'а, но я его подзабцл)

Такая задача уже решалась. Ищите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Archie
сообщение 19.10.2007 15:59
Сообщение #7


Новичок
*

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

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


Ребят, нужно решить задачу только с использованием того что перечислено. без строк.я не знаю как вообще это решить - завтра сдавать...напишите плис прогу эту...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 19.10.2007 19:24
Сообщение #8


Профи
****

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

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


Можно приблизительно так:
var ch: char;
x,d: real;
f: boolean;
begin
x:=0;
f:=false;
d:=0.1;
while ch<>' ' do
begin
readln(ch);
if ch='-' then d:=d*(-1);
case ch of
'0': x:=x*10+0;
'1': x:=x*10+1;
'2': x:=x*10+2;
'3': x:=x*10+3;
'4': x:=x*10+4;
'5': x:=x*10+5;
'6': x:=x*10+6;
'7': x:=x*10+7;
'8': x:=x*10+8;
'9': x:=x*10+9;
end;
if f then d:=d*10;
if (ch='.') or (ch=',') then f:=true;
end;
if f then x:=x/d; //исправлено
writeln(x:6:4);
end.


Сообщение отредактировано: Айра - 20.10.2007 16:51
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 20.10.2007 12:09
Сообщение #9


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Айра @ 19.10.2007 20:24) *

Можно приблизительно так:

Вот результат работы твоей программы:
Код
Running "h:\home\ak\_pas\h\h048\h048.exe "
1
2
3

1230.0000

Что-то не так.. sad.gif

А что, ReadKey тоже нельзя использовать? blink.gif Некрасиво выходит... sad.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 20.10.2007 16:52
Сообщение #10


Профи
****

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

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


Цитата
Что-то не так..

Я даже знаю что wink.gif
x:=x/d;

надо заменить на
if f then  x:=x/d;

Исправила))

Цитата
А что, ReadKey тоже нельзя использовать? Некрасиво выходит...

Если б я знала, что это и с чем его едят unsure.gif не проходили мы ето еще, у нас символов вообще еще нет))

Сообщение отредактировано: Айра - 20.10.2007 16:55
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Archie
сообщение 21.10.2007 16:17
Сообщение #11


Новичок
*

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

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


спс.выручили)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 21.10.2007 22:44
Сообщение #12


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Айра @ 20.10.2007 17:52) *

Если б я знала, что это и с чем его едят

Это совсем нетрудно. Посмотри, я немного модифицировал твою программку.. До кучи, ввел простенькую диагностику ошибок.
Обрати внимание на использование CRT
uses
CRT;

var
ch: char;
x,d: real;
e,f,g: boolean;

begin
x:=0;
e:=false;
f:=false;
g:=false;
d:=10;
repeat
ch:=ReadKey;
Write(ch);
case ch of
'0'..'9': x:=x*10+Ord(ch)-48;
'.': if f then e:=true else f:=true;
'-': if g then e:=true else d:=-d;
' ': break;
else e:=true
end;
if f then d:=d*0.1;
g:=true;
until false;
if f then x:=x*d;
if e then WriteLn('Error') else WriteLn(x:6:4);
ReadLn
end.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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