Помощь - Поиск - Пользователи - Календарь
Полная версия: запись
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
So Slow
1)Вывести на экран исходный масссив анкеты в виде Таблице 1
№ п/п Фамилия Имя Отчество специальность зарплата

2)упорядочить по возрастанию зарплаты и вывести в виде т.1
3)Вывести на экран сведенья о тех у кого зп> 5000 в виде табл 2
№ п/п Фамилия Имя Отчество зарплата


ПОМОГИТЕ ПЛЗ !mol1.gif !help.gif
volvo
Посмотри здесь:
Занесение из файла в структуру
+ пользуйся поиском по форуму. Таких задач решалось достаточно много...
So Slow
дык мне без создания файла надо.....я кода пишу в записи типы real, integer, byte то компелятор выдает мне ошибку ypriamii.gif
volvo
Цитата
я кода пишу в записи типы real, integer, byte то компелятор выдает мне ошибку
А КАК ты пишешь, и КАКУЮ ошибку он выдает, мы конечно ( dry.gif ) должны сами догадаться?

P.S. To Altair: Пора переименовывать форум в "Телепаты о программировании на Паскале"
So Slow
пишет бред.....что надо енд написать и ставит курсоп после , например, real ypriamii.gif
volvo
Ты код привести можешь? Или это "Top Secret" ?
мисс_граффити
Цитата(So Slow @ 14.03.2006 13:42) *

пишет бред.....что надо енд написать и ставит курсоп после , например, real ypriamii.gif

end писать не пробовал?...

Описание записи выглядит примерно так:
type имя_записи=record
поле_1: тип;
поле_2: тип;
...
поле_N: тип;
end;
So Slow
BoT
Program Note1;
uses crt;
type note=record
f:string;
i:string;
o:string;
spe:string;
3n:real;
end;
mas=array [1..8] of note;
var a:mas;
i,j,n,r:integer;

Begin
clrscr;
write ('Vvod n:');
readln (n);
for i:=1 to n do
with a[i] do
begin
write ('F, I, O:');
readln (f, i, o);
write ('CneL|uaJl'HocTb:');
readln (spe);
write ('3apnJlaTa:');
readln (3n);
end;

for i:=1 to n-1 do
for j:=i+1 to n do
if a[i].3n>a[j].3n then
begin
r:=a[i].3n;
a[i].3n:=a[j].3n;
a[j].3n:=r;
end;


for i:=1 to n do
with a[i].3n do
writeln (f, i, o, spe, 3n);
readkey;
End.


4To He TaK???
volvo
А кто тебе разрешил Идентификатор начинать с цифры? Срочно читай букварь (в виде TP Help). НАЧИНАТЬ имена переменных - только с букв!!!

Дальше...

Смотри на подсветку:
 write ('CneL|uaJl'HocTb:');
Видишь, где ЗЕЛЕНАЯ строка заканчивается? Дальше будет ошибка...

Ну, и последнее - несовместимость типов:
 r:=a[i].3n;

Integer <- Real делать нельзя... Наоборот - можно, а так - нет...
So Slow
заменил....терь другая ошибка)....
Цитата

...
for i:=1 to n do
with a[i].zn do
writeln (f, i, o, spe, zn);
readkey;
End.


ставит курсор перед do и пишет error 75: record or object variable expected.
мисс_граффити
не поняла...
ты этим что хочешь сделать?!
вроде бы пытаешься вывести
a[i].zn.f

то есть попробуй

for i:=1 to n do
with a[i] do
writeln (f, i, o, spe, zn);
readkey;
End.
So Slow
кул....работает.....а как сделать чтоб выводилось ввиде таблице.......
и еще там есть 4 пункт задания
4) Организовать интерфейс пользователя в виде меню
klem4
Воспользуйся поиском, ищи "задачи записи", "типизированный файл". Релизовано множество БД с меню и выводом в виде таблицы ...
So Slow
кароч если кому надо, то вот
Код
uses crt;
type spisok=record
        f,name,o,spe:string[10];
        zp:integer;                      
        end;
     mas=array[1..100] of spisok;
var a,f:mas;

  y,t,w,i:integer;

procedure vvod;
var l:char;
begin
  clrscr;
  repeat
   t:=t+1;
   write('0|0aMuJlu9|=');     readln(a[t].f);
   write('Um9l=');        readln(a[t].name);
   write('oT4ecTBo=');        readln(a[t].o);

   write('CneL|uaJlbnocTb=');        readln(a[t].spe);
   write('3apnJlaTa=');         readln(a[t].zp);
   writeln('Prodolzit?(Y/N)');
   readln(l);
   clrscr;
  until (l='n') or(l='N');
end;

procedure show;
var s:integer;
begin
if t=0 then writeln('baza pusta')
        else
        begin
        writeln('|--------------------------------------------------------------------|');
          write ('|ь| 0|0aMuJlu9|  |   Um9l   |    oT4ecTBo');
        writeln('  |CneL|uaJlbnocTb|3apnJlaTa|');
        writeln('|-|--------------|----------|--------------|---------------|---------|');
        for s:=1 to t do
         begin
          write('|',s:1,'|');
          write(a[s].f:14,'|');
          write(a[s].name:10,'|');
          write(a[s].o:14,'|');
          write(a[s].spe:15,'|');
          write(a[s].zp:8,' |');
          writeln;
         end;
         writeln('|--------------------------------------------------------------------|');
        readln;
        end;
end;

procedure poisk;
var
sf:string;
b,e,d,s:integer;
begin
for s:=1 to t do
begin
  if a[s].zp<5000   then
                    begin
                     write('|',a[s].f:10,'|');
                     write(a[s].name:10,'|');
                     write(a[s].o:10,'|');
                     write(a[s].zp:6,'|');
                     writeln;
                     d:=d+1;
                    end;
end;
if d=0 then writeln('Takoj familii net!!!');
readln;
end;

procedure sort;
{begin
for w:=1 to 3 do begin
for i:=1 to 2 do begin
if a[i].surname>a[i+1].surname then
f[i]:=a[i];
a[i]:=a[i+1];
a[i+1]:=f[i];
end;
end;
show;}
var
c:spisok;
h,m:integer;
begin
  show;
  m:=1;
  while m<>t do
  begin
    h:=m+1;
    while (h>1) and (a[h].zp < a[h-1].zp) do
    begin
     c.f:=a[h].f;
     c.name:=a[h].name;
     c.o:=a[h].o;
     c.spe:=a[h].spe;
         c.zp:=a[h].zp;
        a[h].f:=a[h-1].f;
    a[h].name:=a[h-1].name;
    a[h].o:=a[h-1].o;
    a[h].spe:=a[h-1].spe;
        a[h].zp:=a[h-1].zp;
     a[h-1].f:=c.f;
     a[h-1].name:=c.name;
     a[h-1].o:=c.o;
     a[h-1].spe:=c.spe;
         a[h-1].zp:=c.zp;
         h:=h-1;
    end;
    m:=m+1;
  end;
  writeln;
  show;
end;

Begin
clrscr;
t:=2;
with a[1] do
      begin
       f:='Ivanov';
          name:='Ivan';
          o:='Ivanovi4';
          spe:='programmer';
           zp:=6000;
      end;
with a[2] do
      begin
       f:='Petrov';
          name:='Petop';
          o:='Petrovich';
          spe:='ofis plankton';
           zp:=7000;
      end;
repeat clrscr;
       writeln('1-vvod');
       writeln('2-vivod');
       writeln('3-vivod po vozrastu');
       writeln('4-sortirovka');
       writeln('0-quit');
       readln(y);
       clrscr;
case y of
       1:vvod;
       2:show;
       3:poisk;
       4:sort;
       end;
until y=0;

end.
Студентик13
Вау!!!!!!! а я думал...пасибо.
P.S хоть и не мне.



Ф Л Е Й М

Последнее китайское предупреждение, дальше будет БАН

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.