![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Archie |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: ![]() ![]() ![]() |
integer, real, boolean, литеры.
Литеры в операторах ветвления, цикла. Ввод/вывод литерных дан- ных.Ребят...помогите плиз - я эти литеры не проходил и не знаю даж что это... Используя только литерный ввод, ввести задан- ное вещественное число (за ним - пробел), записанное по правилам языка Паскаль, и присвоить его вещественной переменной X. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата я эти литеры не проходил и не знаю даж что это Символы это... Char-ы, в смысле..."используя только литерный ввод" - имеется в виду, что тебе нельзя пользоваться оператором Read/Readln читающим Real, можно читать только по одному символу с консоли... |
Archie |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: ![]() ![]() ![]() |
ну а кто нить может решитЬ?
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Может... А ты можешь сам хотя бы начать? Если за тебя все решить, тебе что, это как-то поможет?
|
Archie |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: ![]() ![]() ![]() |
я просто даже не представляю...мы такое не делали...лекция по этой теме будет в понедельник а сдать нужно в субботу...йа чо т даж логически не могу додуматься как это сделать
|
Ozzя |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
В цикле пока не пробел
читать символ (readkey) если символ цифра (in '0'..'9') или точка или 'E' или '+' или '-' то добавить символ в строку конец цикла перевести строку в число (val) У val есть возможность отследить ошибку. (есть примечание от Volvo по поводу глюков/фичей val'а, но я его подзабцл) Такая задача уже решалась. Ищите. |
Archie |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: ![]() ![]() ![]() |
Ребят, нужно решить задачу только с использованием того что перечислено. без строк.я не знаю как вообще это решить - завтра сдавать...напишите плис прогу эту...
|
Айра |
![]()
Сообщение
#8
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
Можно приблизительно так:
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.
Сообщение отредактировано: Айра - |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Можно приблизительно так: Вот результат работы твоей программы: Код Running "h:\home\ak\_pas\h\h048\h048.exe " 1 2 3 1230.0000 Что-то не так.. ![]() А что, ReadKey тоже нельзя использовать? ![]() ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Айра |
![]()
Сообщение
#10
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата Что-то не так.. Я даже знаю что ![]() x:=x/d;
надо заменить на if f then x:=x/d;
Исправила)) Цитата А что, ReadKey тоже нельзя использовать? Некрасиво выходит... Если б я знала, что это и с чем его едят ![]() Сообщение отредактировано: Айра - |
Archie |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: ![]() ![]() ![]() |
спс.выручили)
|
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Если б я знала, что это и с чем его едят Это совсем нетрудно. Посмотри, я немного модифицировал твою программку.. До кучи, ввел простенькую диагностику ошибок. Обрати внимание на использование 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.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 12.04.2025 5:49 |