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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2014, 09:06   #1
LancerRiker
Пользователь
 
Регистрация: 20.10.2014
Сообщений: 18
По умолчанию Pascal.Задачи

1.Дана непустая последовательность положительных целых чисел, за которой следует 0 (это признак конца последовательности). Вычислить среднее арифметическое этих чисел.
2.Дана непустая последовательность ненулевых целых чисел, за которой следует 0. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 1, -34, 8, 14, -5 знак меняется 3 раза)
3.Вычеслить
Пытался сделать . Гуглил. Не получилось (особенно со второй)
Изображения
Тип файла: png Безымянный.png (1.2 Кб, 95 просмотров)

Последний раз редактировалось LancerRiker; 24.10.2014 в 15:33.
LancerRiker вне форума Ответить с цитированием
Старый 24.10.2014, 12:21   #2
nikita33321
Пользователь
 
Аватар для nikita33321
 
Регистрация: 17.12.2008
Сообщений: 56
По умолчанию

Код:
    for i:=0 to n do
     begin
     sum := 0; //среднее ариф
     k := 0;  // счетчик 
         if (a[i] <> 0 ) then 
         begin
               sum := sum + a[i];
               k := k + k;
         end
          else
           begin
              result = sum:k; // среднее последовательности
              sum:= 0;
              k:=0;
           end;
     end;
1 задача


ПО второй - просто меняешь флаги


ps давно не кодил на паскале, могут быть ошибки
skype: nikita333211

Последний раз редактировалось nikita33321; 24.10.2014 в 12:39.
nikita33321 вне форума Ответить с цитированием
Старый 24.10.2014, 15:24   #3
LancerRiker
Пользователь
 
Регистрация: 20.10.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от nikita33321 Посмотреть сообщение
Код:
    for i:=0 to n do
     begin
     sum := 0; //среднее ариф
     k := 0;  // счетчик 
         if (a[i] <> 0 ) then 
         begin
               sum := sum + a[i];
               k := k + k;
         end
          else
           begin
              result = sum:k; // среднее последовательности
              sum:= 0;
              k:=0;
           end;
     end;
1 задача


ПО второй - просто меняешь флаги


ps давно не кодил на паскале, могут быть ошибки
как она будет полностью выглядить? у меня не получается ее собрать
С флажками я сделал.

Последний раз редактировалось LancerRiker; 24.10.2014 в 15:32.
LancerRiker вне форума Ответить с цитированием
Старый 25.10.2014, 16:59   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Небольшие ошибки в коде. Даю правильный
Код:
sum := 0; //среднее ариф
k := 0;  // счетчик 
for i:=0 to n do
     begin
     
         if (a[i] <> 0 ) then 
         begin
               sum := sum + a[i];
               k := k + k;
         end
          else
           begin
              result:= sum:k; // среднее последовательности
              sum:= 0;
              k:=0;
           end;
     end;
3 задача:
Код:
p:=0;
for i := 1 to 20 do
   for j := 1 to 20 do
      p := p * 1/(i + j*j);
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось Stilet; 25.10.2014 в 18:07.
newerow1989 вне форума Ответить с цитированием
Старый 25.10.2014, 17:13   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
3 задача:
Код:
p:=0;
for i := 1 to 20 do
   for j := 1 to 20 do
      p := p * 1/(i + j*j);
Ну ты чо? Без ножа режешь!
Изображения
Тип файла: png 5.png (5.4 Кб, 72 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 25.10.2014, 17:23   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Мне что-то не хотелось проверять на Паскале!
Код:
p:=1; //пусть будет так!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 26.10.2014, 00:11   #7
serb1980
Новичок
Джуниор
 
Регистрация: 26.10.2014
Сообщений: 1
По умолчанию

спс, очень полезно
serb1980 вне форума Ответить с цитированием
Старый 26.10.2014, 00:48   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Кстати, вот альтернативное решение для второй задачи:
Код:
{пусть A - массив неизвестной размерности (хотя такого, наверное, не может быть) с такой последовательностью}

Amount:=0;
i:=1;
while a[i+1] <> 0 do
	begin
		if a[i]*a[i+1] < 0 then
			inc(Amount);
		inc(i);
	end;
конечно, если в массиве находятся огромные числа, то их произведение даст ещё большее число, что вызовет аварийное завершение программы и не даст никакого результата.

Последний раз редактировалось Вадим Мошев; 26.10.2014 в 00:51.
Вадим Мошев вне форума Ответить с цитированием
Старый 26.10.2014, 04:41   #9
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Кстати, вот альтернативное решение для второй задачи:
Код:
{пусть A - массив неизвестной размерности (хотя такого, наверное, не может быть) с такой последовательностью}

Amount:=0;
i:=1;
while a[i+1] <> 0 do
	begin
		if a[i]*a[i+1] < 0 then
			inc(Amount);
		inc(i);
	end;
конечно, если в массиве находятся огромные числа, то их произведение даст ещё большее число, что вызовет аварийное завершение программы и не даст никакого результата.
Условие выхода из цикла неграмотное: размерность массива ограничено, поэтому произойдет выход из массива, здесь приведет к аварийному завершению программы.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 26.10.2014, 13:34   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Можете мне привести пример, который приведёт к аварийному завершению программы?

Вот вам сразу код:
Код:
var
  Amount, i, n: byte;
  a: array[byte] of integer;

begin

readln(n);
for i:=1 to n do
  read(a[i]);
    
  


  Amount:=0;
i:=1;
while a[i+1] <> 0 do
	begin
		if a[i]*a[i+1] < 0 then
			inc(Amount);
		inc(i);
	end;

write('kol-vo  ', Amount);

readln;
readln;

end.
Я его прогнал по некоторым тестам - всё прошло успешно.
Один из тестов был таким:
Массив из двух элементов (5 и 0)
Результат: знак не меняется ни разу, ответ: 0

Последний раз редактировалось Вадим Мошев; 26.10.2014 в 13:36.
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на Pascal Arnold9131 Фриланс 3 10.11.2014 09:11
3 задачи (Pascal) Валера01 Помощь студентам 1 17.02.2012 12:58
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28