Разработать функцию, описывающую поселение отдельного туриста - Turbo Pascal
Формулировка задачи:
В гостиницу прибыла группа из M туристов. Каждый турист хочет занять номер определенной категории (с душем, с ванной, люкс) и должен быть поселен в отдельный номер. Для поселения администратор располагает перечнем свободных номеров с указанием их категории.
Разработать функцию, описывающую поселение отдельного туриста при следующих предположениях:
функция вырабатывает значение «ИСТИНА», если турист размешен в номере требуемой категории (при этом указывается номер, в который он поселен);
функция вырабатывает значение «ЛОЖЬ», если турист на может быть поселен в номер требуемой категории.
Разработать программу, описывающую алгоритм работы администратора по заселению группы. Программа должна вырабатывать перечень номеров, оставшихся свободными после окончания поселения и перечень туристов оставшихся не поселенными
Никак не получается ее сделать... Надеюсь, что вы мне поможете. Заранее спасибо
Решение задачи: «Разработать функцию, описывающую поселение отдельного туриста»
textual
Листинг программы
program gost; uses crt; {funkcia zaselenia} function nomer(tip,svan,sdush,luks,komn:integer):string; begin if (tip=1)and(sdush>0) then begin nomer:='istina'; end else begin if (tip=2)and(svan>0) then begin nomer:='istina'; end else begin if (tip=3)and(luks>0) then begin nomer:='istina'; end else nomer:='lozno'; end; end; end; {osnovnoi kod} const kolnom=10; var ludi:array [1..10] of string; nomera:array [1..500] of integer; tipnom:array[1..500] of integer; zapros:array[1..10] of integer; nezas:array[1..10] of string; nomzas:array [1..500] of integer; pos:string; i,j,M,nsv,nsd,nl,nt:integer; begin randomize; nt:=1; nsv:=0; nsd:=0; nl:=0; j:=0; write('kol-vo turistov=>>');readln(M); writeln('vvod svobodnih nomerov'); for i:=1 to kolnom do begin nomera[i]:=i; write('nomer =>>',nomera[i]); nomzas[i]:=0; end; writeln('vvod tipov nomerov:1-nomer s dushem/2-nomer s vannoi/3-nomer luks'); for i:=1 to kolnom do begin write('tip nomera (',i,') =>');readln(tipnom[i]); case tipnom[i] of 1:nsd:=nsd+1; 2:nsv:=nsv+1; 3:nl:=nl+1; end; end; writeln('vvod imien i zaprosov'); for i:=1 to M do begin write('imia=>'); readln(ludi[i]); write('tip=>'); readln(zapros[i]); pos:=nomer(zapros[i],nsv,nsd,nl,nomera[i]); if pos='istina' then begin while nt<kolnom+1 do begin if (tipnom[nt]=zapros[i])and(nomzas[nt]=0) then begin writeln('nomer =>',nomera[nt]); nomzas[nt]:=1; case zapros[i] of 1:nsd:=nsd-1; 2:nsv:=nsv-1; 3:nl:=nl-1; end; nt:=kolnom+1; end else nt:=nt+1; end; nt:=1; end else begin j:=j+1; nezas[j]:=ludi[i]; end; end; writeln('nezaselennie turisti'); if j>0 then begin for i:=1 to j do begin writeln('imia =>> ',nezas[i]); end; end; writeln('empty rooms'); for i:=1 to kolnom do begin if nomzas[i]=0 then writeln('nezaselennii nimer =>>',nomera[i]); end; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д