В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
MeilisS
MeilisS
09.01.2021 18:03 •  Информатика

Между населёнными пунктами А, В, С, D, Е построены дороги, протяжённость которых (в километрах) приведена в таблице: Определите длину кратчайшего пути между пунктами А и E. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.
1)7 2)8 3)9 4)10

Показать ответ
Ответ:
exhedzo
exhedzo
05.02.2022 13:56
В Вашем варианте после while необходимо писать begin, а после Writeln - end. Но само по себе решение некрасивое.
Вот Вам еще два на выбор.

1. Без массива

var
  s,n:integer;
begin
  Write('Введите сумму: '); Read(s);
  n:=s div 5000;
  if n>0 then begin
    Writeln('Банкнот "5000" всего: ',n);
    s:=s mod 5000
    end;
  n:=s div 1000;
  if n>0 then begin
    Writeln('Банкнот "1000" всего: ',n);
    s:=s mod 1000
    end;
  n:=s div 500;
  if n>0 then begin
    Writeln('Банкнот "500" всего: ',n);
    s:=s mod 500
    end;
  n:=s div 100;
  if n>0 then begin
    Writeln('Банкнот "100" всего: ',n);
    s:=s mod 100
    end;
  n:=s div 50;
  if n>0 then begin
    Writeln('Банкнот "50" всего: ',n);
    s:=s mod 50
    end;
  n:=s div 10;
  if n>0 then begin
    Writeln('Банкнот "10" всего: ',n);
    s:=s mod 10
    end;
  if s>0 then Writeln('Недоплачено: ',s)
end.

Пример:
Введите сумму: 162504
Банкнот "5000" всего: 32
Банкнот "1000" всего: 2
Банкнот "500" всего: 1
Недоплачено: 4

2. С массивом

const
  k:array[1..6] of integer=(5000,1000,500,100,50,10);
var
  s,n,i:integer;
begin
  Write('Введите сумму: '); Read(s);
  for i:=1 to 6 do begin
    n:=s div k[i];
    if n>0 then begin
      Writeln('Банкнот "',k[i],'" всего: ',n);
      s:=s mod k[i]
      end
    end;
  if s>0 then Writeln('Недоплачено: ',s)
end.

Пример
Введите сумму: 15470
Банкнот "5000" всего: 3
Банкнот "100" всего: 4
Банкнот "50" всего: 1
Банкнот "10" всего: 2
0,0(0 оценок)
Ответ:
az34358strelok8390
az34358strelok8390
05.04.2020 21:21

program t;

var

a,c:real;

i:integer;

begin

i:=1;

a:=1000;

write('1');

while(i<>6) do

 begin

  a:=a+a*(2*0.01);

  inc(i);    

 end;

writeln('Спустя ',i,' месяцев =',a:4:2);

a:=1000;

i:=1;

write('2');

while(true) do

 begin

  a:=a+a*(2*0.01);

  inc(i);

  if(a>1200)then begin writeln('Через ',i); break; end;

 end;

a:=1000;

c:=0;

i:=1;

write('3');

while(true) do

 begin

  c:=a*(2*0.01);

  a:=a+c;

  inc(i);

  if(c>50) then begin writeln('через ',i,' месяцев'); break; end;

 end;

 

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота