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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2011, 15:16   #11
мария 12
Пользователь
 
Регистрация: 26.05.2011
Сообщений: 26
По умолчанию

я думаю можно но я не уверена))
мария 12 вне форума Ответить с цитированием
Старый 26.05.2011, 15:21   #12
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

Код:
for i:=1 to n do
  begin

       if a[i]<0 then
       begin
        if k1=0 then
       k1:=i
        else k2:=i;
       if k2<>0 then goto 1;
       end;

        1:for j:=k1+1 to k2-1 do
        begin
       s:=s+a[j];

        end;
ну собственно код не очень... даже не знаю работает ли... проверте сами переделать в цыкл while думаю не составит трудностей
Pein95 вне форума Ответить с цитированием
Старый 26.05.2011, 15:21   #13
мария 12
Пользователь
 
Регистрация: 26.05.2011
Сообщений: 26
По умолчанию

думаю можно но я не уверена
мария 12 вне форума Ответить с цитированием
Старый 26.05.2011, 15:23   #14
мария 12
Пользователь
 
Регистрация: 26.05.2011
Сообщений: 26
По умолчанию

я так писала преподу не понравилось...
и теперь ищу альтернотивные варианты...(((
мария 12 вне форума Ответить с цитированием
Старый 26.05.2011, 15:25   #15
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Ну если можно то можно попробовать примерно так(у меня компилятора нету под рукой что бы проверить)
Код:
var
  x: array [1..100] of Integer;
  i,sum: Integer;
begin
  i := 1;
  sum := 0;
  While ( i != 100) do begin
    x[i] := random(50)-25;
    inc(i);
  end;
  While ( i != 100) do begin
    if (x[i] < 0) then begin
      while(i != 100) do begin
        sum:= sum + x[i];
        if(x[i] < 0) then begin
          i:=100;
          break;
        end;
        inc(i);
       end;
     end;
     inc(i);
   end;
   WriteLn('Сумма чисел в диапозоне от первого отрицательного до второго отрицательно числа: ', sum);
end.
Т.к. пишу прямо тут в форуме, то за работо способность не ручаюсь, и возможно нужно Break`ов добавить дабы он закрывал всё

Чуть чуть подправил, в ручной ввод сама переделаешь
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.

Последний раз редактировалось Donatello; 26.05.2011 в 15:29.
Donatello вне форума Ответить с цитированием
Старый 26.05.2011, 15:29   #16
мария 12
Пользователь
 
Регистрация: 26.05.2011
Сообщений: 26
По умолчанию

а можно без break ов и random ов??)))))) :-[
мария 12 вне форума Ответить с цитированием
Старый 26.05.2011, 15:31   #17
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Ну без брейков ты не обойдешься, покрай не мере в том примере что я привел(правда точно не уверен мб можно и без них все же обойтис) про рандом я уже писал на что ты ответила что знаешь про ввод массива, следовательно переделать ввод массива под ручное управление тебе не составит труда.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 26.05.2011, 15:35   #18
мария 12
Пользователь
 
Регистрация: 26.05.2011
Сообщений: 26
По умолчанию

просто меня за такое в универе накажут... нужно что-нибудь попроще... ((((((((
мария 12 вне форума Ответить с цитированием
Старый 26.05.2011, 15:35   #19
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Попробуй тогда вот так, правда с вводом массива правильно или нет.
Код:
var
  x: array [1..n] of Integer;
  i,sum,n: Integer;
begin
  i := 1;
  sum := 0;
  WriteLn('Введите размерность массива');
  ReadLn(n);
  Writeln('Введите числа массива');
  While ( i != n) do begin
    Read(x[i]);
  end;
  While ( i != n) do begin
    if (x[i] < 0) then begin
      while(i != n) do begin
        sum:= sum + x[i];
        if(x[i] < 0 and i != n) then begin
          i:=n;
        end;
        inc(i);
       end;
     end;
     inc(i);
   end;
   WriteLn('Сумма чисел в диапозоне от первого отрицательного до второго отрицательно числа: ', sum);
end.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 26.05.2011, 15:38   #20
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

За что наказывать то??? Я когда учился на первой лабе все решил через циклы, хотя требовалось через if`ки, я думаю ничего тебе не сделают, правда могут возложить лишнии надежды на тебя, да и проверь мб мой вариант еще и не рабочий.
Все сделано на логике.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51
Задача slavik-slash Общие вопросы C/C++ 0 05.01.2011 16:53
Задача stck Microsoft Office Excel 1 30.12.2010 10:04
Задача laxe Общие вопросы C/C++ 10 29.08.2009 18:42