Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2019, 11:54   #1
wordsword
 
Регистрация: 18.01.2019
Сообщений: 5
По умолчанию Проверьте, пожалуйста, алгоритм

Проверьте, пожалуйста, алгоритм.
Код:
//Дан массив A[1:n]. Написать постановку задачи, алгоритм и программу    
//для вычисления суммы элементов массива, расположенных между первым и 
//последним отрицательными элементами (включительно).

program between;
const lmax=20;
type mass=array[1..lmax] of real;
var a: mass;
n, i, n1, np: integer;
s: real;
begin
repeat
      writeln('введите n');      read(n);
until (n>0) and (n<=lmax);
writeln('введите ',n:3,' элементов');
for i:=1 to n do
    read(a[i]);
n1:=0; np:=0; 
for i:=1 to n do
    if a[i]<0 then
    begin
        if n1=0  then 		        
		n1:=i;
	np:=i
    end;
if n1=0 then
	writeln ('нет отрицательных')
else
	if n1=np then
		writeln ('один отрицательный элемент', a[n1])
	else
		begin
		s:=0;
		for  i:=n1 to  np   do
			s:=s+a[i] ;
		writeln('s=',s:10:5)

		end
end.
и вот, сообственно, алгоритм
Изображения
Тип файла: gif сумма элементов.gif (12.7 Кб, 116 просмотров)
wordsword вне форума Ответить с цитированием
Старый 18.01.2019, 12:03   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
        if n1=0  then 		        
		n1:=i;
	np:=i
Второе присваение тоже под условием идет.

Код:
else
	if n1=np then
Не к тому ифу.
p51x вне форума Ответить с цитированием
Старый 18.01.2019, 12:06   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

На блоксхеме вроде цикл FOR [a=1,n] не так должен быть нарисован. Получается будто с условия a(i)<0 есть 3 выхода: да, нет, неопределенный.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.01.2019, 12:13   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Ну это, видимо, женская логика : "и не то чтобы да, и не то чтобы нет"

Последний раз редактировалось digitalis; 18.01.2019 в 12:21.
digitalis вне форума Ответить с цитированием
Старый 18.01.2019, 12:21   #5
wordsword
 
Регистрация: 18.01.2019
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
На блоксхеме вроде цикл FOR [a=1,n] не так должен быть нарисован. Получается будто с условия a(i)<0 есть 3 выхода: да, нет, неопределенный.
А как выйти после безусловного цикла окончания перебора на продолжение программы графически?
И да, заранее прошу прощения, если что не так. Обучаюсь онлайн на курсере, проверить некому. Рисуйте прям на алгоритме)). СПАСИБО.
wordsword вне форума Ответить с цитированием
Старый 18.01.2019, 12:30   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от wordsword Посмотреть сообщение
А как выйти после безусловного цикла окончания перебора на продолжение программы графически?
А где ж он безусловный? 1<= i <= n вполне себе условие.
p51x вне форума Ответить с цитированием
Старый 18.01.2019, 12:33   #7
wordsword
 
Регистрация: 18.01.2019
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А где ж он безусловный? 1<= i <= n вполне себе условие.
Придется еще подумать((( ... и порисовать.
wordsword вне форума Ответить с цитированием
Старый 18.01.2019, 12:33   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от wordsword Посмотреть сообщение
А как выйти после безусловного цикла окончания перебора на продолжение программы графически?
блок-схема for
http://tat67183862.narod.ru/image35.jpg
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.01.2019, 12:39   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от wordsword Посмотреть сообщение
Придется еще подумать
Помогут задачи типа - написать один и тот же алгоритм с помощью трех типов циклов. Ну или знакомство с языками, где фор записывается полностью.
p51x вне форума Ответить с цитированием
Старый 18.01.2019, 12:43   #10
wordsword
 
Регистрация: 18.01.2019
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Thanks...
wordsword вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверьте пожалуйста кира2015 Помощь студентам 1 08.06.2015 23:31
С++. Проверьте пожалуйста код Alexandrk8 Помощь студентам 11 10.09.2009 11:45
проверьте программку пожалуйста! djem90 Помощь студентам 2 08.12.2008 01:35
Проверьте пожалуйста.. NSvirus Паскаль, Turbo Pascal, PascalABC.NET 0 24.11.2008 01:39