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

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

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

> Очередь, Наработки есть, помогите с решениеем.
Бунтарь
сообщение 22.12.2010 17:44
Сообщение #1





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

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


Основные действия с очередью я реализовал (очистить, проверить, добавить, удалить, прочитать 1 и посл. элемент).

Вот реализация всех действий с очередью:
Program ochered;
Uses crt;
Type spd = ^Tspd;
     Tspd = record
     data:string;
     next,last:spd;
     end;
Var op:integer;
    stek, stek1,stek2:spd;
    st0,st1,st2:spd;
    data:string;
procedure add(var sp,st:spd; data:string);
var temp:spd;
begin
new(temp);
temp^.data:=data;
temp^.next:=nil;
 if sp = nil
  then
   begin
   temp^.last:=nil;
   sp:=temp;
   st:=sp;
    end
     else
      begin
      temp^.last:=st;
      st^.next:=temp;
      st:=temp;
    end;
 end;
procedure view(sp:spd);
begin
 if sp = nil
  then
   writeln('ochered pysta');
while sp<>nil do
 begin
 write(sp^.data,'  ');
 sp:=sp^.next;
 end;
end;
function proverka(sp:spd):boolean;
begin
 if sp = nil
  then
   proverka:=false
  else
   proverka:=true;
end;
function del(var sp, st:spd):string;
var temp:spd;
begin
 if sp = nil
  then
   begin
   writeln('Error: ochered pysta ');
   readkey;
   exit;
 end;
del:=sp^.data;
temp:=sp;
sp:=sp^.next;
 if sp = nil
  then
   st:=nil;
dispose(temp);
end;
procedure clear(var sp, st:spd);
var temp:spd;
begin clrscr;
 while sp<>nil do
 begin
 temp:=sp;
 sp:=sp^.next;
 dispose(temp);
 end;
 st:=nil;
end;
function read_the_first_element(sp:spd):string;
var a:string;
begin
   a:=sp^.data;
   read_the_first_element:=a;
end;
function read_the_last_element(st:spd):string;
var a:string;
begin
   a:=st^.data;
   read_the_last_element:=a;
end;
begin
st0:=nil;
repeat
clrscr;
writeln;
writeln('1-add element');
writeln('2-del element');
writeln('3-view ochered');
writeln('4-clear ochered');
writeln('5-read_1_element');
writeln('6-read_posledn.element');
writeln;
writeln('0-exit');
readln(op);
case op of
1:begin
   clrscr;
   write('vvedite znachenie dobavl. elementa ');
   readln(data);
   clrscr;
   add(stek, st0, data);
   writeln;
   writeln('element dobavlen');
   writeln;
   writeln('vasha ochered ');
   writeln;
   view(stek);
   writeln;
   writeln;
   writeln('najmite klavishy');
   readkey;
   end;
2:begin
   clrscr;
   if proverka(stek) then
    begin
    writeln(' element ', del(stek, st0),' udalen ');
    writeln;
    writeln('vasha ochered');
    writeln;
    view(stek);
    writeln;
    writeln;
    writeln('najmite klavishy');
    readkey;
   end else
   begin
    writeln('ydalenie ne vozmojno - ochered pysta');
    writeln;
    writeln;
    writeln('najmite klavishy');
    readkey;
   end;
  end;
3: begin
    clrscr;
    writeln;
    writeln('vasha ochered');
    writeln;
    view(stek);
    writeln;
    writeln;
    writeln('najmite klavishy');
    readkey;
   end;
4:begin
  clear(stek, st0);
  writeln('vasha ochered ochishena');
    writeln;
    writeln;
    writeln('najmite klavishy');
    readkey;
  end;
5:begin
   clrscr;
   writeln;
   writeln(''prochten. pervyu element');
   writeln;
   writeln(read_the_first_element(stek));
   writeln;
   writeln('vasha ochered');
   writeln;
   view(stek);
   writeln;
   writeln;
   writeln('najmite klavishy');
   readkey;
end;
6:begin
   clrscr;
   writeln;
   writeln('prochten. posled element');
   writeln;
   writeln(read_the_last_element(st0));
   writeln;
   writeln('vasha ochered');
   writeln;
   view(stek);
   writeln;
   writeln;
   writeln('najmite klavishy');
   readkey;
end;
0:begin
    exit;
    end;
    end;
until op=0;
end.


Хочу встроить в данную программу, эти 2 маленькие задачки, вызывая их в основной программе.

1.Пусть уже построена очередь Q, содержащая целые числа. Вычислить сумму и произведение элементов, находящихся в очереди.

2.Пусть уже построена очередь Q, содержащая целые числа. Вычислить количество элементов очереди кратных 3.

Подскажите как реализовать эти програмки.

Сообщение отредактировано: Бунтарь - 26.12.2010 10:38
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 

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