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

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

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

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


mea culpa
*****

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

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


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


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #43


Гость






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


mea culpa
*****

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

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


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

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


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


Гуру
*****

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

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


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

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

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

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

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


Гость






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


Гость






Unconnected, спасибо но ваш вариант не подходит так как вы используете строчный тип string
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #50


Гость






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


mea culpa
*****

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

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


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


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


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


Гость






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


mea culpa
*****

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

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


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

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

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


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


Гость






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


mea culpa
*****

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

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


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


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


Гость






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

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


mea culpa
*****

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

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


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


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


Гость






ну вот пример что делает этот цикл вот я выбрал букву z аданой тогда потом набираю следующие
asdfzxcvbn инсерт
он вот что выведет строку asdfzcvbn
а затем запишет что за заданм символом стоит x
а на самом деле выходит с
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #60


Гость






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

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

 





- Текстовая версия 28.03.2024 17:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name