Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2013, 17:30   #1
Jamguranga
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 48
По умолчанию Задача со строками(время поджимает)

Помогите решить задачу:
Сведения о выдаче экземпляра журнала читатель состоят из названия журнала, номера и фамилии читателя. Ввести набор из 10 таких сведений. найти (МНЕ НУЖЕН ПУНКТ 2, помогите)

1) по данной названии журнала номера, издававшихся и фамилии читателей, которые принимали;
2) для каждого номера заданного журнала количество его выдачи.

А вот и наработки:

Код:
uses crt;
type info=record;
     name,prizv:string;
     num:integer;

          end;
          
var a: array[1..100] of info;
    b: array[1..100] of integer;
    f:text;  i,n,v,nm,k,q,mq:integer;
    sn:string;  c:integer;
    
Begin
 Clrscr;
 assign(f, 'd:\ddl7.txt');
 reset(f);
  i:=1;
while not eof(f) do
  with a[i] do
    begin
      inc(i);
      read(f,name);
      readln(f,num);
      readln(f,prizv);
      readln(f);
    end;
close(f);

n:=i;
writeln('Vvedu variant(1,2,3):');
read(v);
writeln;


        if v=1 then
           begin
             write('Vvedu nazvu zhyrnalu(napruklad avtomobili): ');
             read(sn);
                 for i:=1 to n do
                 with a[i] do
                        if sn=name then
                            begin
                              write('Nomer zhurnalu: ',num,' Prizvushe chutacha: ',prizv);
                              writeln;
                            end;
           end


      else if v=2 then
          begin
             write('Vvedu nazvu zhyrnalu(napruklad avtomobili): ');
             read(sn);
             
            for i:=1 to n do
              with a[i] do
                 if sn=name then
                    begin
                      inc(q);
                      b[q]:=num;
                      mq:=q;
                    end;


           for q:=1 to mq do
             begin
              for i:=q+1 to mq-1 do
                 if b[q]=b[i] then
                   inc(c);

            writeln('zhurnalu iz nomerom ', b[q],' vud y ksti ', c);
               end;
            end;
readln
 end.
у меня выводит не в суме сколько экземпляров, а по отдельности...

и ещё, внутренности файла с которого беру информацию:
Цитата:
avtomobili
1
Petrov

kvitu
2
Ivanova

roslunnui svit
3
Drugal

avtomobili
1
Bondar

avtomobili
32
Lampard

modern PC
4
Ydodenko

svit modu
5
Ignatiev

istoria
6
Dudko

osnovu turbo pascal
12
Petov

osnovu turbo pascal
12
Nikolaev

Последний раз редактировалось Jamguranga; 16.01.2013 в 17:33.
Jamguranga вне форума Ответить с цитированием
Старый 16.01.2013, 21:51   #2
Jamguranga
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 48
По умолчанию

Как я понял, нужно как-то суммировать кол-во, в случае одинаковых номеров...
Jamguranga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача со строками Falcao Паскаль, Turbo Pascal, PascalABC.NET 2 25.12.2012 22:13
Срочно и очень важно!!! Время поджимает!!!Помогите решить задачу в Паскале на зарплату lenok113 Фриланс 7 24.05.2009 22:22
У кого есть время помогите со строками ByFly Помощь студентам 3 03.02.2009 21:10
Задача со строками Klyan Общие вопросы C/C++ 6 21.09.2007 22:22