Определить, выдержит ли мост - Pascal
Формулировка задачи:
Из-за своего грубого невежества не могу написать следующую задачу:
"поезд едет через мост. Входные данные: длина моста, его "выдерживающая способность" (не знаю, как на русский перевести), длина вагона. Дальше задается масса каждого вагона в виде массива, который обрывается на -1.
Если мост выдержит, то вывести число. Если мост рухнет, то вывести 0"
примеры данных:
ВВОД
10 100 5
30 30 30 40 30 30 40 39 40 -1
ВЫВОД
8
ВВОД
7 20 3
4 5 5 5 5 5 4 -1
ВЫВОД
0
Мои карякули:
Понимаю, что нужно применить сдвиг массива влево. Компиляцию проходит, а ответы неправильные.
var
a,b:array[1..100] of integer;
i,r,n,k,j,s,kek:integer;
dm,nm,dv:integer;
begin
read(dm, nm, dv); {длина моста. выдержка моста. длина вагона}
repeat read(a[i]) until i= -1;
k:= dm div dv;(*)
for i:=1 to k do
s:=s+a[i];
*)
if nm-s=0 then kek:=0 else
for i:=1 to k do
begin
for j:=n downto 1 do
if (j=n) then r:=a[n] else a[j+1]:=a[j];
a[1]:=r;
end;
kek:=kek+1;
write(kek);
end.Решение задачи: «Определить, выдержит ли мост»
textual
Листинг программы
Read(b,m,c); c:=(b-1) div c+2; {s:=0; i:=0;}
Объяснение кода листинга программы
- Read(b,m,c):
b- значение переменнойb(вероятно, ширина моста)m- значение переменнойm(вероятно, вес автомобиля)c- значение переменнойc(вероятно, допустимая грузоподъемность моста)
- c:=(b-1) div c+2:
- Вычисление нового значения переменной
cпутем вычитания 1 изb, деления наcи добавления 2 к результату.
- Вычисление нового значения переменной
- {s:=0; i:=0;}:
- Эта часть кода закомментирована и, следовательно, не выполняется. Возможно, ранее использовалась для обнуления переменных
sиi.
- Эта часть кода закомментирована и, следовательно, не выполняется. Возможно, ранее использовалась для обнуления переменных