Os proprietários de um teatro necessitam de umaferramenta de software para reserva de lugares.O desenvolvedor contratado verificou que as poltronasdisponíveis para reserva são referenciadas pelo número da fila(a partir do n. 1) e pelo número da cadeira (a partir do n. o o1) em cada fila, em uma representação matricial em que aslinhas e colunas da matriz correspondem, respectivamente, àsfilas e às colunas de cadeiras. Embora o contexto seja o daorganização matricial — N filas de cadeiras (linhas), cada umacontendo M cadeiras (colunas) —, a solução a serimplementada utilizará uma estrutura linear unidimensional(vetor), sendo, portanto, necessária uma conversão entre olugar referenciado (número f da fila, número c da cadeira) ea posição real na estrutura de armazenamento (posição p novetor).Na situação apresentada, considere que a referida matriz sejaarmazenada no vetor segundo sua seqüência de linhas, da primeirapara a última, e, em cada linha, da primeira coluna para a última,e que a primeira posição no vetor tenha índice 0. Nessa situação,a posição p da poltrona do teatro localizada à fila de número f eà coluna de número c, é igual aA c + f × M.B f + c × M.C M × (f – 1) + (c – 1).D M × (c – 1) + (f – 1).E M × (c – 1) + M × f.
#ENADE
Soluções para a tarefa
Podemos afirmar então que o programa ficará da seguinte forma;
Vamos aos dados/resoluções:
É de conhecimento público que vamos desenvolver o enunciado dessa maneira abaixo:
var
Matriz : array[1..10,1..10] of string;
Fila, Coluna : integer;
I, K : integer;
Cliente : string[40];
Resp : Char;
BEGIN
for I := 1 to 10 do begin
for k := 1 to 10 do begin
Matriz[i,K] := 'Vazia';
end;
end;
repeat
Clrscr;
Writeln('Digite o Nome do Cliente que fez a reserva');
Readln(Cliente);
repeat
Writeln('Digite o Numero da Fila da Reserva do Cliente');
Readln(Fila);
Writeln('Digite o Numero da Coluna da Reserva do Cliente');
Readln(Coluna);
until (Fila <= 10) or (Coluna <= 10);
Matriz[Fila,Coluna] := Cliente;
Writeln('Outro Cliente? <S/N>');
Readln(Resp);
until UpCase(Resp) = 'N';
for I := 1 to 10 do begin
for k := 1 to 10 do begin
if Matriz[i,K] <> 'Vazia' then begin
Writeln('Cliente: ', Matriz[i,K]);
Writeln('Fila: ', I);
Writeln('Coluna:', K);
Writeln;
end;
end;
end;
Readln;
END.
espero ter ajudado nos estudos ,bom dia :)
Resposta: M × (f – 1) + (c – 1).
Explicação: correção DMN