Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 18.11.2012, 16:06   #11 (permalink)
Tenken
Banned
 
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Vladimir_S а не могли бы вы посмотреть вот я тут с помощью одного человека решил вот так, это правильно?

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.
Tenken вне форума   Ответить с цитированием

Старый 18.11.2012, 16:06
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Возможно такое, что проблема уже решена в одной из аналогичных тем

Нужна помощь в решении задачи Pascal
Прошу помощи в решении задач в Pascal
Помогите найти ошибку в решении задачи с массивом

Старый 18.11.2012, 17:13   #12 (permalink)
Vladimir_S
Специалист
 
Регистрация: 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") и позволит прочитать выведенные на экран данные.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.11.2012, 17:54   #13 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Tenken, не смешите народ сказками, что вы не проходили логический тип. К вашему сведению, язык программирования Pascal как один из вариативных, по школьной программе изучают в 9 классе средней школы. Так что вы вполне можете упирать на этот факт в разговоре с вашим преподавателем.
AlexZir вне форума   Ответить с цитированием
Старый 18.11.2012, 21:43   #14 (permalink)
Tenken
Banned
 
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я понял вашу задачу только не могли бы вы подсказать я бы хотел вручную вводить элементы массива, а не так чтобы они случайно выводились.
Tenken вне форума   Ответить с цитированием
Старый 18.11.2012, 23:46   #15 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Tenken Посмотреть сообщение
Vladimir_S а не могли бы вы посмотреть вот я тут с помощью одного человека решил вот так, это правильно?
Цитата:
Сообщение от Tenken Посмотреть сообщение
Я понял вашу задачу только не могли бы вы подсказать я бы хотел вручную вводить элементы массива, а не так чтобы они случайно выводились.
Ну здрасьте, я ваша тётя! Уважаемый "автор", пусть даже и "с помощью одного человека", даже не понял, что выложил именно такой вариант - с вводом данных с консоли! Цирк, да и только!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 19.11.2012, 00:22   #16 (permalink)
Tenken
Banned
 
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Всё задача выполнена всем большое спасибо, извините за тупизм не судите строго не очень я пока разбираюсь, я в школе не учил паскаль, т.к. в 9 классе учитель информатики в декрет ушла и поэтому пропущено всё было, вот почему и туплю, но ничего наверстаю упущенное и буду решать задачи как надо, ещё раз извините!=)
Tenken вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:55.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.