• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

помогите с лабой по паскалю

  • Автор темы alk51
  • Дата начала
A

alk51

Всем привет,
я не очень понимаю в программировании, вот и прошу помощи. вот листинг

type
firma = object
name: string[30];
direktor: string [30];
procedure Input;
procedure Show;
end;

OOO = object(firma)
ustkap: string[10];
sotrud: integer;
procedure Input;
procedure Show;
end;

IP = object(firma)
address: string[70];
vid: string[40];
procedure Input;
procedure Show;
end;

var
m1:OOO;
m2:IP;

Procedure firma.Input;
begin
write('Nazvanie firma: ');
readln(name);
write('Direktor: ');
readln(direktor);
end;

Procedure firma.Show;
begin
writeln('Nazvanie: ', name);
writeln('Direktor: ', direktor);
end;

Procedure OOO.Input;
begin
firma.show;
write('Ustkap: ');
readln(ustkap);
write('Sotrud: ');
readln(sotrud);
end;

Procedure OOO.Show;
begin
writeln('Ustkap: ', ustkap);
writeln('Sotrudniki: ', sotrud);
end;

Procedure IP.Input;
begin
firma.show;
write('Address: ');
readln(address);
write('Vid: ');
readln(vid);
end;

Procedure IP.Show;
begin
writeln('Address: ', address);
writeln('Vid: ', vid);
end;


Так она не работает но я незнаю почему, сделал все как в руководстве к лабораторной
 
A

alk51

DIR3ct0r спасибо, при компиляции ошибок не найдено, но на исполнения программа не запускается :rolleyes:
 
B

Barmutik

Ну так а что должно запускаться ?

У Вас в листинге только описание классов .. и нет самого кода программы ...
 
A

alk51

а-а-а все ясно, а я тодумал это и есть программа, спасибо что открыли глаза, буду разбираться дальше, если че не пойму напишу :rolleyes:
 
D

DIR3ct0r

Все верно, описаны только типы структур данных.....дале следует объявление переменных и т.п
 
A

alk51

Вот еще чем загрузили, по этому листингу нужно составить блок-схему :unsure: ,
я еще пойму если по блок-схеме составить программу но как это сделать по листингу я не представляю вот и прошу у Вас помощи в рисовании этой блок схемы (сказали в частности сделать схему процедур)
, очень прошу Вас помочь

type
tp=(OOO,IP);
firma=record
name:string [15];
direktor:string [15];
kl:char;
case member:tp of
OOO:(ustkap:string [10];
sotrud:string[10]:unsure:;
IP:(address:string[15];
vid:string[40]:(;
end;
mas=array[1..10] of firma;
const q='0123456789';

var
a,list:mas;
n,i,m:integer;
k,s:string;
f,e:boolean;
klass:char;

function pr(s:string) :boolean;
var i:byte;
r:boolean;
begin
i:=1; r:=true;
while (i<=length(s)) and (r=true) do
if pos(s,q)=0 then
r:=false else
i:=i+1;
pr:=r;
end;

procedure up (var S:string);
var i:integer;
begin
for i:=1 to length(s) do
s:=upcase (s);
end;

procedure vvod;
begin
writeln('!!!!!!!!!!!!!');
f:=false;
while (f=false) do begin
writeln('諽-ó« ºá»¿ßÑ⌐ «Γ 1 ñ« 5');
readln(n);
if (n>=1) and (n<=5) then f:=true
else writeln ('ÄΦ¿í¬á. Å«óΓ«α¿ΓÑ óó«ñ');
Writeln;
end;
for i:=1 to n do begin
f:=false;
while f=false do begin
writeln ('OOO -1');
writeln ('êÅ -2');
Write ('Æ¿» Σ¿α¼δ '); readln (k);
if (k[1]='1') or (k[1]='2') then f:=true
else writeln ('ÄΦ¿í¬á. Å«óΓ«α¿ΓÑ óó«ñ'); Writeln;
end;
klass:=k[1];
a.kl:=klass;
write ('ìáºóá¡¿Ñ Σ¿α¼δ ',i, ':');
readln(list.name);
write ('ä¿αÑ¬Γ«α ',i,':');
readln (list.direktor);
klass:=a.kl;
case klass of
'1':begin
e:=false;
while e=false do
begin
write ('éóÑñ¿ΓÑ πßΓáó¡«⌐ ¬á»¿Γá½ ',i, ' Σ¿α¼δ:');
readln (s);
up(s);
begin
list .ustkap:=s;
e:=true;
end
end;
e:=false;
while e=false do
begin
write ('éóÑñ¿ΓÑ ¬«½¿τÑßΓó« ß«Γαπñ¡¿¬«ó ',i, ' Σ¿α¼δ:' );
readln (s);
if pr(s)=true then
begin
list.sotrud:=s;
e:=true;
end
else writeln ('éó«ñ ¡Ñ¬«ααѬΓÑ¡.Å«óΓ«α¿ΓÑ »«»δΓ¬π');
end;
end;
'2':begin
writeln ('ÇñαÑß αÑú¿ßΓαᵿ¿ ',i,' Σ¿α¼δ:');
readln (s);
list.address:=s;
write ('é¿ñ ñÑ∩Γѽ∞¡«ßΓ¿ ',i,' Σ¿α¼δ:');
readln (s);
list.vid:=s;
end;
end;
end;
end;

procedure vivod;
begin
f:=false;
m:=1;
while (f=false) do begin
for i:=1 to n do
writeln ('ºá»¿ß∞',i,': ',list.name);
writeln ('ñ½∩ óδσ«ñá ¡áª¼¿ΓÑ 0');
writeln ('óóÑñ¿ΓÑ ¡«¼Ñα ºá»¿ß¿ ¬«Γ«απε σ«Γ¿ΓÑ »α«ß¼«ΓαÑΓ∞ ');
readln (i);
m:=i;
if m=0 then f:=true else begin
if i<=n then begin
writeln ('ºá»¿ß∞ ⁿ',i);
writeln ('¡áºóá¡¿Ñ Σ¿α¼δ: ',list.name);
writeln ('ä¿αÑ¬Γ«α Σ¿α¼δ: ',list.direktor);
klass:=a.kl;
case klass of
'1':begin
writeln ('ôßΓáó¡«⌐ ¬á»¿Γá½: ',list.ustkap);
writeln ('æ«Γαπñ¡¿¬¿: ',list.sotrud);
readln;
end;
'2' :begin
writeln ('ÇñαÑß αÑú¿ßΓαᵿ¿: ',list.address);
writeln ('é¿ñ ñÑ∩Γѽ∞¡«ßΓ¿: ',list.vid);
readln;
end;
end;
end
else begin writeln('«Φ¿í¬á »«óΓ«α¿ΓÑ óó«ñ');
writeln;
end;
end;
end;
end;


begin
writeln(' ');
vvod;
vivod;
end.
 
D

DIR3ct0r

Читаешь программу по строкам и рисуешь соответствующие блоки, что сложного?
 
A

alk51

сложное в том что я в программировании не чего не понимаю :D
 
D

DIR3ct0r

И не поймете, если не будете разбираться или вы хотите, чтобы мы за вас блок-схему рисовали?
 
D

DIR3ct0r

Блок-схемы всех процедур будут полностью идентичны, только переменные буду разные. Картинку выложить не знаю куда.
 
A

alk51

плиз, пришли пример картинки в личку либо на мыло alk51@yandex.ru
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!