IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
Closed Topic Открыть новую тему 
> помогите срочно написать на завтра программу, Pascal,задача простая,но я туплю
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Виктор

Репутация: -  0  +


Даны действительные числа a1, a2 ... a16 . Найти максимальную сумму из (a1+a16; a2+a15; a8+a9) и минимальное произведение из (a1*a9; a2*a10; a3*a9; ... a8*a16) Smax и Pmin Вывести на память.

Очень прошу!помогите!!не успею до завтра,а это всё таки лаба((( norespect.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Для начала отредактируй название темы..
Покажи, что делал? Что именно непонятно?

Цитата
Вывести на память.

Может на печать?

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Виктор

Репутация: -  0  +


скорее всего,просто ошиблась когда распечатывала,так,я кажется стал вникать в задачу,сори что беспокоил give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Виктор

Репутация: -  0  +


Uses CRT;

Const n=16;

Var

a:array[1..n] of Integer;
b:array[1..n] of Integer;
i, j,s1,s2,s3,p:Integer;

Begin
Clrscr;
Randomize;
Writeln('Vvedem possledovatelnost chisel');

For i:=1 to n do
Begin
a[i]:= random(50);
Writeln(a[i]);
Writeln;
End;
s1:=a[1]+a[16];
s2:=a[2]+a[15];
s3:=a[8]+a[9];
if s1>s2 then
if s1>s3 then writeln('max summa=',s1)
else writeln('max summa=',s3)
else if s2>s3 then writeln('max summa=',s2);
i:=0;
j:=9;
repeat
i:=i+1;
if i mod 2 = 0 then j:=j+1;
begin
b[i]:=a[i]*a[j];
end;
until (i>=n);
i:=1;

p:=b[1];
for j:= 2 to 50 do
if b[j]<p then begin
p:=b[j];
i:=j
end;
writeln('min proizvedenie=',p);
Readln;
End.


скажите плз,где ошибка,он мне всегда выводит одно и тоже число при выводе минимального произведения,выдаёт всегда -10319 blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


М
1. Заголовок темы должен быть информативным. Переименуй, пожалуйста.
2. Используем тег CODE.



По программе.

Во-первых, у тебя в цикле repeat-until последнее значение j равно 17, а массив заполняется только до 16.

Во-вторых, последний цикл у тебя от 2 до 50, а нужно от 2 до n.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


А сумма точно трех пар нужна, не последовательности?

А как тебе такой вариант нахождения произведения:

pmin:=10000;
for i:=1 to (n div 2) do
begin
t:=a[i]*a[(n div 2)+i];
if t<pmin then pmin:=t;
end;


Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Цитата
for i:=1 to ((n div 2) + (n mod 2)) do

верхняя граница разве не n?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Так, что-то я похоже не то сделала:
(a1*a9; a2*a10; a3*a9; ... a8*a16)
Это как тогда выглядит последовательность? или здесь не 9, а 11?

Если 11, тогда верхняя граница (n div 2), ((n mod 2) тогда даже не нужен)..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


по-моему так: 1*9, 2*10, 3*10, 4*11, 5*11, 6*12 ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


...у автора по-другому: 1*9,2*10,3*9...8*16
..буду ждать его разъяснения..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Виктор

Репутация: -  0  +


Итак,там только 3 суммы,задание я написал идентично с оригиналом,а в последовательности с умножением,там будет так:при нечётном первом а(а1 а3 а5...) 2 множитель всегда а9,а когда 1 множитель чётный то в номере будет шаг 2(а10 а12 а14 а16) лаба была сегодня,и на ней я сделал этот вариант,всё вышло,проблема лишь возникла в блок схеме для этой программы,и поэтому препод даже не посмотрела программу.Спасибо огромное нашему модератору,он вовремя подсказал,там осталось чуток подправить и она заработала good.gif
Вот код:

Код
Uses CRT;

Const n=16;

Var

a:array[1..n] of Integer;
b:array[1..n] of Integer;
i, j,s1,s2,s3,p,x,x1:Integer;



Begin
  Clrscr;
  Randomize;
  Writeln('Vvedem possledovatelnost chisel');

  For i:=1 to n do
   Begin
    a[i]:= random(20);
    Writeln(a[i]);
    Writeln;
   End;
   s1:=a[1]+a[16];
   s2:=a[2]+a[15];
   s3:=a[8]+a[9];
   if s1>s2 then
    if  s1>s3 then writeln('max summa=',s1)
    else writeln('max summa=',s3)
   else if s2>s3 then writeln('max summa=',s2)
   else writeln('max summa=',s3);
   i:=0;
   j:=9;
  { repeat


{for j:=9 to 16 do begin   }

  { i:=i+1;
   if i mod 2 = 0 then j:=j+1;
   begin
   b[i]:=a[i]*a[j];
   end;

   until (i>=n);}
   x1:=999;
   for j:=0 to 7 do begin
   j:=j+1;
   for i:=9 to n do begin
   i:=i+1;
   x:=a[j]*a[i];
      write(' ',x);
   if x1>x then x1:=x
   else
   end;end;

   writeln(' min proizvedenie=',x1);
  {
   i:=1;

   p:=b[1];
   for j:= 2 to n do
   if b[j]<p then begin
   p:=b[j];
   i:=j
   end;
   writeln('min proizvedenie=',p);}
  Readln;
End.





 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.09.2020 12:13
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name