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

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

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

 
 Ответить  Открыть новую тему 
> Помогите решить задачу на Паскале, однонаправленный список
24dima
сообщение 22.10.2010 13:12
Сообщение #1





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

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


Мне дали на лабораторной работе задачи по Паскалю, но я его не так хорошо знаю Паскаль чтобы решить эту задачу. Помогите мне пожалуйста сделать эту задачу:
Сформировать однонаправленный список из звеном-заголовком.
Вывести его на печать.
Проверить, входит ли в этот список буква буква "К", если не входит, то дописать ее в конец списка.


Сообщение отредактировано: 24dima - 22.10.2010 13:18
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 22.10.2010 13:30
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


поиск по форуму + FAQ

если мы сейчас напишем, то ты так никогда паскаль и не узнаешь.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
24dima
сообщение 27.10.2010 0:49
Сообщение #3





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

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


Добрый вечер! Программу я написал, только что одна проблема букву "К" вставляет не в конце а в начале. Помогите решить проблему.

program laba4;
type
zv=^pointer;
pointer=record
              elem:char;
              next:zv
end;

var
   find:boolean;
   vlan, vslov:zv;
   sym:char;

procedure vstav (lanka:zv; buk:char);
var
   q:zv;
begin
        if (lanka<>nil) then 
     new(q);
     q^.elem:=buk;
     q^.next:=lanka^.next;
     lanka^.next:=q;
end;

begin
        find:=false;
             new (vslov);
     vslov^.next:=nil;
     vlan:=vslov;
     writeln ('Введить символ до крапки');
     repeat
           read (sym);
           vstav(vlan,sym);
           vlan:=vlan^.next;
     until sym='.';
     writeln ('Сформований рядок');
     vlan:=vslov;
     vlan:=vlan^.next;
     while vlan^.next<>nil do
     begin
          write (vlan^.elem);
          vlan:=vlan^.next;
     end;

     vlan:=vslov;
     while vlan^.next=nil  do
     begin
         if vlan^.elem='K' then
         begin
                find:=true;
                break;
         end;
        vlan:=vlan^.next;
     end;

     if find=true then writeln('Element e')
     else
     begin
        vstav(vlan,'K');
        writeln('Element vstavleno');
        vlan:=vslov;
        vlan:=vlan^.next;
        repeat
        write(vlan^.elem);
        vlan:=vlan^.next
        until vlan=nil;
        writeln;
    end;
   end.



Прикрепленные файлы
Прикрепленный файл  frd.pas ( 1.31 килобайт ) Кол-во скачиваний: 196
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.10.2010 7:53
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


почему
while vlan^.next=nil  do

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

if find=true then

можно писать
if find then


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
24dima
сообщение 27.10.2010 9:35
Сообщение #5





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

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


Благодарю вас за помощь!

Сообщение отредактировано: 24dima - 27.10.2010 9:35
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 27.10.2010 9:56
Сообщение #6


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

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

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


Цитата(24dima @ 27.10.2010 10:35) *
Благодарю вас за помощь!

Добавляю +1 в репутацию мисс_граффити от 24dima


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 27.10.2010 15:39
Сообщение #7


Я.
****

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

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


oфф.

24dima, ЗАЧЕМ ПИСАТЬ ТАКИМ ИТЕРЕСНЫМ ШРИФТОМ???

Сообщение отредактировано: sheka - 27.10.2010 15:40
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

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