18.11.2012, 16:06 | #11 (permalink) |
Banned
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
const n = 100; var a:array[1..n]of integer; i,j,b,c,e:integer; begin readln(b); for i:=1 to b do begin readln(a[i]); if (a[i]>0) and (c=0) then c:=i; end; for i:=1 to b-1 do for j:=i to b do if a[i]>a[j] then begin c:=a[i]; a[i]:=a[j]; a[j]:=c; e:=e+1;end; if e<>0 then for i:=1 to b do write(a[i],' '); writeln; j:=0; for i:=1 to b do j:=j+a[i]; if e=0 then begin a[c+1]:=j; writeln(a[c+1]);end; end. |
18.11.2012, 16:06 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Возможно такое, что проблема уже решена в одной из аналогичных тем Нужна помощь в решении задачи Pascal Прошу помощи в решении задач в Pascal Помогите найти ошибку в решении задачи с массивом |
18.11.2012, 17:13 | #12 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да вроде можно и так. Пара-тройка мелких замечаний.
1. "Слепой" ввод чисел ну очень неудобен. Куда, на мой взгляд, приятнее и удобнее, если на экране появляются подсказки. Поэтому вместо readln(b); for i:=1 to b do begin readln(a[i]); if (a[i]>0) and (c=0) then c:=i; end; я бы написал write('b= '); readln(b); for i:=1 to b do begin write('a[',i,']= '); readln(a[i]); if (a[i]>0) and (c=0) then c:=i; end; 2. Можно, конечно, полагаться на то, что по умолчанию переменным присвоены нулевые значения, но я бы не стал: не все трансляторы это делают. А потому добавил бы в нужных местах c:=0; и e:=0; 3. Если перед финальным "end." добавить (как у меня сделано) пустой "readln;", то программа остановится (до нажатия "Enter") и позволит прочитать выведенные на экран данные. |
18.11.2012, 17:54 | #13 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Tenken, не смешите народ сказками, что вы не проходили логический тип. К вашему сведению, язык программирования Pascal как один из вариативных, по школьной программе изучают в 9 классе средней школы. Так что вы вполне можете упирать на этот факт в разговоре с вашим преподавателем.
|
18.11.2012, 23:46 | #15 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
19.11.2012, 00:22 | #16 (permalink) |
Banned
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Всё задача выполнена всем большое спасибо, извините за тупизм не судите строго не очень я пока разбираюсь, я в школе не учил паскаль, т.к. в 9 классе учитель информатики в декрет ушла и поэтому пропущено всё было, вот почему и туплю, но ничего наверстаю упущенное и буду решать задачи как надо, ещё раз извините!=)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|