Написать программу в pascal, чтобы выдал подъезд и этаж

0 голосов
41 просмотров

Написать программу в pascal, чтобы выдал подъезд и этаж


image

Информатика (151 баллов) | 41 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Pascal.
var
  n: integer;
  k: integer;
  p: integer;
  m: integer;
  x: integer;
  y: integer;
  z: integer;
begin
  write('Сколько подъездов в доме? ');
  readln(m);
  write('Сколько этажей в доме? ');
  readln(n);
  write('Сколько квартир на 1-ом этаже? ');
  readln(p);
  write('Сколько квартир на остальных этажах? ');
  readln(k);
  writeln('Общее количество квартир в доме: ',(k*(n-1)+p)*m);
  repeat
    write('Номер квартиры: ');
   readln(x);
    if x>(k*(n-1)+p)*m then writeln('Выбранной Вами квартиры не существует. Введите настоящий номер.');
  until x in[1..(k*(n-1)+p)*m];
   if x>k*(n-1)+p then
  begin
    z:=x div 16+1;
    x:=x mod 16;
     if x>p then y:=x div k +1 else y:=1;
   end else
  begin
    z:=1;
     if x>p then y:=x div k +1
       else y:=1;
   end;
   writeln('Искомая квартира находится в ',z,'-м подъезде на ',y,' этаже.');
   readln;
end.

(100 баллов)
0

хм,программа работает,но можно было бы ее чуть укоротить.
Да и еще я нашел ошибку в программе:
Если ввел что подъездов 1,этажей 3,на 1 этаже квартир 2,а на других тоже по 2,то выдает что квартира находиться на 4 этаже.Хоть мы указали что всего 3 этажа...