![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Ольга |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Женский Реальное имя: Оля Репутация: ![]() ![]() ![]() |
На рисунке изображен треугольник из чисел. Напишите программу, которая вычисляет наибольшую сумму чисел, расположенных на пути, начинающемся в верхней точке треугольника и заканчивающемся на основании треугольника.
Код 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 - Каждый шаг на пути может осуществляться вниз по диагонали влево или вниз по диагонали вправо. - Число строк в треугольнике > 1 и <100. - Треугольник составлен из целых чисел от 0 до 99. Сообщение отредактировано: Lapp - 5.05.2007 4:45 |
![]() ![]() |
Ольга |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Женский Реальное имя: Оля Репутация: ![]() ![]() ![]() |
Вот что у меня получилось (на основании как предлагалось выше)
uses crt; Const vector: array[1 .. 15] of integer = (7, 3, 8, 8, 1, 0, 2, 7, 4, 4, 4, 5, 2, 6, 5); var i,j,n,m:longint; f,g:text; {***********************************************************} function max(x,y:longint):longint; begin if x>y then max:=x else max:=y; end; {***********************************************************} procedure readdata; begin write('введите n>'); readln(n); for i:=1 to n do for j:=1 to i do begin write('введите ar[',i,',',j,']>'); readln(vector[i]); end; end; {***********************************************************} procedure checker; begin for i:=2 to n do for j:=1 to i do if j=1 then vector[i]:=vector[i]+vector[i-1] else if j=i then vector[i]:=vector[i]+vector[i-1] else vector[i]:=vector[i]+max(vector[i-1],vector[i-1]); end; {***********************************************************} procedure writedata; begin for i:=1 to n do if vector[i]>m then m:=vector[i]; writeln('naibolchay summa',m); end; {***********************************************************} begin clrscr; readdata; checker; writedata; readkey; end. |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 11:52 |