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

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

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

4 страниц V < 1 2 3 4 >  
 Ответить  Открыть новую тему 
> символьный тип даных
Unconnected
сообщение 25.12.2009 23:19
Сообщение #41


mea culpa
*****

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

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


Насколько я понял, ты имел в виду цикл. Т.е. обработать за две итерации.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 26.12.2009 10:56
Сообщение #42


Гуру
*****

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

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


Естественно.
Правда, это было написано для реализации конечным автоматом. Т.к. предложенная тобой реализация таковой, строго говоря, не является, то логичнее делать проверку в один проход.
Да и вообще, конечный автомат в основном позволяет на этапе проектирования предусмотреть ВСЕ варианты поведения при различных входных данных, в том числе и недопустимых, и, таким образом, еще и диагностировать ошибки.
На практике же построенный (на бумаге) конечный автомат затем упрощают и оптимизируют. В частности, отходят от требования обрабатывать один символ за один проход цикла.
В той раскладке, кстати, которую я ранее приводил, целесообразно объединить начальное состояние с состоянием после "других" клавиш и таким образом таблица состояний будет иметь вид:
0 - после "других" клавиш, начальное,
1 - после ключевой клавиши,
2 - после 0 (т.е. ловим код управляющей клавиши),
3 - конечное.

По горизонтали - входные символы, по вертикали - состояния.
Код
+---+------+----------+---+----------+
|   | 0    | 82       | f |другой    |
+---+------+----------+---+----------+
| 0 | 2    | 0        | 1 | 0        |
|   | нет  |нет       |нет|нет       |
+---+------+----------+---+----------+
| 1 | 0    | 0        | 1 | 0        |
|   |ошибка|запоминаем|нет|запоминаем|
+---+------+----------+---+----------+
| 2 | 0    | 3        | 0 | 0        |
|   |ошибка|нет       |нет|нет       |
+---+------+----------+---+----------+
| 3 | -    | -        | - | -        |
+---+------+----------+---+----------+
По этому автомату в принципе тоже можно написать довольно громоздкую программу с вложенными case.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 16:27
Сообщение #43


Гость






volvo ты мне скажи зачем геофизику програмирование???
и я над этой задачкой дня три сидел, а не сразу сдался
 К началу страницы 
+ Ответить 
Unconnected
сообщение 26.12.2009 16:50
Сообщение #44


mea culpa
*****

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

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


Если в курсе есть программирование, значит, это кому-нибудь нужно... rolleyes.gif

Ну решение в теме есть, тебе только надо сделать выход именно по Insert.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 26.12.2009 17:07
Сообщение #45


Гуру
*****

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

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


Цитата(Гость @ 26.12.2009 16:27) *

volvo ты мне скажи зачем геофизику програмирование???
и я над этой задачкой дня три сидел, а не сразу сдался

1. Ты ведь хочешь получить диплом о ВЫСШЕМ образовании и даже не задумываешься, а чем, собственно, отличается высшее образование от среднего специального. Объясныть я это сейчас тебе не буду. Долго слишком. Надеюсь, лет через 15 сам поймешь. Если, конечно, будешь стремиться выучиться, а не просто получить диплом.

2. Я, например, решаю задачи в области геофизики, и использую для этого численное моделирование физических процессов, которое, в свою очередь, невозможно без программирования.

3. Я наблюдал за твоими сообщениями тоже дня 3. И заметил, что тебе было лень даже написать что-то длиннее одной строки. На мои вопросы ответить не пытался, разобраться с приведенными ссылками не удосужился...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 17:48
Сообщение #46


Гость






3. Я наблюдал за твоими сообщениями тоже дня 3. И заметил, что тебе было лень даже написать что-то длиннее одной строки. На мои вопросы ответить не пытался, разобраться с приведенными ссылками не удосужился...
это я не отвечал на твои воппросы?
это я написал не больше одной строки? а то что я выложил два варианта своей работы в которой явно больше 1 строки
и я посмотрел те сылки что ты мне дал, там все слишком запутано, если бы сейчас не был декабрь я бы обязательно разобрался, а сейчас у меня просо не хватает времени!!!! така по все предметам зачетные контрольные и к ним надо готовится
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 17:50
Сообщение #47


Гость






Unconnected, спасибо но ваш вариант не подходит так как вы используете строчный тип string
 К началу страницы 
+ Ответить 
Shurik_123
сообщение 26.12.2009 18:03
Сообщение #48


Новичок
*

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

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


andriano, просто вы видели какие задание дал препод другим там чтоб написать минут 3 понадобится , а мне ерунду эту(
задание вот к примеру
1. Вводить символы с клавиатуры. Присвоить логической переменной L значение ‘true’, если выполняются указанные условия, и значение ‘false’ иначе:
• значением L является символ '*';
• значением L является символ 'а';
• значением L является цифра..
вот решение:
program LAB8moe;
uses crt;
var c: char;
L:boolean;
begin
clrscr;
textcolor(3);
writeln('simvol | L');
writeln('==============');
repeat
c:=readkey;
if (c='*') or (c='a') or ( (ord©>=48) and (ord©<=57) ) then
begin
L:=true;
writeln (c,' | ',L)
end
else begin
L:=false;
writeln (c,' | ',L)
end;
until c=#79;
writeln('==============');
readkey
end.

я не спорю оно относится к символьному типу, а это, которое он мне дал вот явно к строковому относится и он требует чтоб его через символы решить , что для меня представляется невозможным...


М
Тэги!

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 26.12.2009 18:21
Сообщение #49


Гуру
*****

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

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


Мне кажется, из программы нужно убрать все лишнее.
program LAB8moe;
uses crt;
var
c : char;
L : boolean;
begin
writeln('simvol | L');
writeln('==============');
repeat
c:=readkey;
L := (c='*') or (c='a') or (c in ['0'..'9']);
writeln (c,' | ',L)
until c=#79;
writeln('==============');
readkey
end.

Ты что-то путаешь. В частности, строковый и символьный типы данных.
В любом случае, если возникают какие-либо сомнения, текст условия нужно приводить ДОСЛОВНО.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 18:35
Сообщение #50


Гость






ничего я не путаю на название не обращай внимание я просто свою неправильную переделал под другой вариант а моя это та с выводом последующего символа... там в задании даже есть слово строка значит оно должно решаться черз строковый тип string, а не через символьный char как он это требует
 К началу страницы 
+ Ответить 
Unconnected
сообщение 26.12.2009 21:05
Сообщение #51


mea culpa
*****

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

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


Цитата
Unconnected, спасибо но ваш вариант не подходит так как вы используете строчный тип string


У меня, наверное, на аватаре крупными буквами написано ЭКСТРАСЕНС, раз ты считаешь, что я могу догадаться, какой тип надо использовать? Или в первом посте это дописано очень мелким шрифтом?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 21:27
Сообщение #52


Гость






Unconnected у вас не написано на аве что вы экстрасенс, но я считаю что судя из заголовка темы символьный тип даных понятно что задачу через символьный тип решать надо
 К началу страницы 
+ Ответить 
Unconnected
сообщение 26.12.2009 21:33
Сообщение #53


mea culpa
*****

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

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


Там и слово данных с одной Н, а я всё равно буду с двумя писать;)

Вариант andriano первой задачи, если ты не заметил, использует символы.

Сообщение отредактировано: Unconnected - 26.12.2009 21:36


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 21:39
Сообщение #54


Гость






не спорю но надо же , чтоб он выводил эту строчку, а тогда по его алгоритму он пропускает этот символ и не пишет его в строке
 К началу страницы 
+ Ответить 
Unconnected
сообщение 26.12.2009 22:09
Сообщение #55


mea culpa
*****

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

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


Сложно сделать вывод символа?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 22:23
Сообщение #56


Гость






  repeat
c1:=readkey;
write(c1){ выводит се символы в строчку}
if (c1=f) then
c2:=readkey;{ считывает символ идущий за заданным, но не вносит в стоку}
until (c1=#0);
writeln(с2);

и тогда выходит что в строке стоит не тот символ который он считал
 К началу страницы 
+ Ответить 
Unconnected
сообщение 26.12.2009 22:24
Сообщение #57


mea culpa
*****

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

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


Или я туплю, или одно из двух.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 22:31
Сообщение #58


Гость






ну вот пример что делает этот цикл вот я выбрал букву z аданой тогда потом набираю следующие
asdfzxcvbn инсерт
он вот что выведет строку asdfzcvbn
а затем запишет что за заданм символом стоит x
а на самом деле выходит с
 К началу страницы 
+ Ответить 
Unconnected
сообщение 26.12.2009 22:44
Сообщение #59


mea culpa
*****

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

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


Сделал вывод символов для кода andriano, всё работает. Больше ничего не добавлял.

uses crt;
var c1,c2,f:char;
begin
writeln('Vvedite iskomiy simvol');
f:=readkey;writeln(f);
writeln('Teper popsimvolno vvodite stroku');
repeat
c1:=readkey;
write(c1);
if (c1=f) then
begin
c2:=readkey;
write(c2);
end;
until (c1=#0);
writeln;
writeln(c2);
readln;
end.



--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 26.12.2009 22:50
Сообщение #60


Гость






точно, спасибо вам большое, теперь век жизни буду вам благодарен
 К началу страницы 
+ Ответить 

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

 



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