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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2008, 22:04   #1
Sarumjan
Пользователь
 
Аватар для Sarumjan
 
Регистрация: 29.11.2008
Сообщений: 46
Сообщение строки в паскале

На картинке условие

вот моя программка, вроде бы правильно все сделал, но както криво все работает, отредактируйте если чтото увидете

Код:
program lab_9;
uses crt;
type zap=record 
         date,firm:string;

         cena,kol:integer;
         typ:char;
     end;

var tovari:array[1..20]of zap;
     i,j,k,l:byte;
     ch:char;
     tag:integer;


 procedure vvod; 
  begin  
  clrscr; 
  repeat 
    i:=i+1;
    with tovari[i] do 
      begin 
        write('input type of goods: 1-Musical,2-Kosmetika'); 
        readln(tag);   
        case tag of 
          1:begin                                       
             write('musical instrument: 1-strunnie,2-duhovie,3-klavishnie');  readln(tag);
             case tag of
               1: typ:='s';
               2: typ:='d';
               3: typ:='k';
             end;
          end;
          2:begin                                        
             write('kosmetika: 1-duhi,2-shampun');  readln(tag);
             case tag of
               1: typ:='i';
               2: typ:='h';
             end;
          end; 
        end;              
        write('Date: ');        readln(date); 
        write('Firma: ');       readln(firm); 
        write('price: ');       readln(cena); 
        write('kolichestvo: '); readln(kol); 
      end;                                                   {end of with} 
    writeln('continue?Y/N');   ch:=readkey; 
  until  upcase(ch)='N'; 
 end;


procedure vyvod;                 
 begin 
 clrscr; 
  for j:=1 to i do
   with tovari[j] do 
     case typ of
       's': begin  
           writeln('musical instruments: ',date,' ',firm,' ',cena,' ',kol,' ','strunnie');       readln; 
        end;
       'd': begin 
           writeln('musical instruments: ',date,' ',firm,' ',cena,' ',kol,' ','duhovie');       readln; 
        end;
       'k': begin 
           writeln('musical instruments: ',date,' ',firm,' ',cena,' ',kol,' ','klavishnie');       readln; 
        end;
       'i': begin 
           writeln('musical instruments: ',date,' ',firm,' ',cena,' ',kol,' ','duhi');       readln; 
        end;
       'h': begin 
           writeln('musical instruments: ',date,' ',firm,' ',cena,' ',kol,' ','shampun');       readln; 
       end; 
     end;
  end;


 procedure endprog;
   begin
     clrscr;
     gotoxy(15,10);   writeln('Do you want to exit from program? y/n');
     ch:=readkey;
     if ch='y' then halt(0);
   end;


procedure task1;
  var
    firmtmp:string;
    cost:integer;

  begin
    cost:=0;
    clrscr;
    writeln('input  firm name ');    readln(firmtmp);
    clrscr;
    for j:=1 to i do if tovari[j].firm=firmtmp then cost:=cost+tovari[j].cena;
    writeln('summarn stoimost= ', cost);          
  readln;
end;


procedure task2;
  var
    typtmp:char;
    b:boolean;
  begin
    b:=false;
    clrscr;
    writeln('input  type of kosmetika: 1-duhi, 2-shampun ');    readln(typtmp);
    clrscr;
    writeln('spisok firm: ');
    if typtmp='1' then typtmp:='i' else typtmp:='h';
    for j:=1 to i do if tovari[j].typ=typtmp then 
      begin
        writeln(tovari[j].firm);
        b:=true;
      end;
    if b=false then writeln('firm s takimi tovarami net');
  readln;
end;


procedure task3;
  var
    tovar:zap;
  begin
    j:=1;
    repeat
      if tovari[j].date<tovari[j+1].date then
        begin
          tovar:=tovari[j+1];
          tovari[j+1]:=tovari[j];
          tovari[j]:=tovar;
          j:=1;
        end
       else j:=j+1;
    until j=i;
end;


procedure menu;
   begin
    repeat
     clrscr;
     gotoxy(21,3);     writeln('MENU');
     gotoxy(15,5);     writeln('1. Input database');
     gotoxy(15,7);     writeln('2. Show database');
     gotoxy(15,9);     writeln('3. Summernaya stoimost.');
     gotoxy(15,11);    writeln('4. Spisok firm.');
     gotoxy(15,13);    writeln('5. Uporyadochit zapisi');
     gotoxy(15,15);    writeln('6. Exit');
     ch:=readkey;
     case ch of
        '1': vvod;
        '2': vyvod;
        '3': task1;
        '4': task2; 
        '5': task3; 
        '6': endprog; 
      end; 
     until ch='7';
   end;        


 begin                           
   clrscr;   
   I:=0;
   menu; 
end.
Изображения
Тип файла: jpg 111.jpg (35.8 Кб, 130 просмотров)
Все ошыбки, являются собственностью автора.
Copyright © 1990-2009
Мой проект
Sarumjan вне форума Ответить с цитированием
Старый 02.12.2008, 22:06   #2
Sarumjan
Пользователь
 
Аватар для Sarumjan
 
Регистрация: 29.11.2008
Сообщений: 46
По умолчанию

Кстати, если заметите какието не сходства с условием, там например недоработку, то пожалуйста напишите где это и на што нужно исправить
Все ошыбки, являются собственностью автора.
Copyright © 1990-2009
Мой проект
Sarumjan вне форума Ответить с цитированием
Старый 03.12.2008, 11:31   #3
4foru
Заблокирован
 
Регистрация: 01.12.2008
Сообщений: 2
По умолчанию

По крайней мере Вы некорректно обращаетесь к полям записи.

Например:
readln(date) - не верно
readln(tovari[1].date) - верно
и т.д.
4foru вне форума Ответить с цитированием
Старый 03.12.2008, 16:32   #4
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Цитата:
Сообщение от 4foru Посмотреть сообщение
По крайней мере Вы некорректно обращаетесь к полям записи.

Например:
readln(date) - не верно
readln(tovari[1].date) - верно
и т.д.
Увы, но в этом месте правильно. См. структуру With.
MalexG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки в паскале Вввова Помощь студентам 10 08.06.2010 14:10
Строки в Паскале istragon Помощь студентам 6 28.12.2009 18:18
Строки в Паскале Обработка текста quqer Помощь студентам 3 11.03.2008 11:22
Строки в паскале Exact Паскаль, Turbo Pascal, PascalABC.NET 8 08.02.2008 20:45
Помогите решить задачку на строки в Паскале. TakeR Помощь студентам 8 26.12.2007 00:09