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

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

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

 
Closed Topic Открыть новую тему 
> помогите срочно написать на завтра программу, Pascal,задача простая,но я туплю
NESC
сообщение 11.12.2007 20:28
Сообщение #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 
 К началу страницы 
+ Ответить 
Айра
сообщение 11.12.2007 20:42
Сообщение #2


Профи
****

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

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


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

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

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

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





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

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


скорее всего,просто ошиблась когда распечатывала,так,я кажется стал вникать в задачу,сори что беспокоил give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
NESC
сообщение 11.12.2007 22:02
Сообщение #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 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 12.12.2007 2:29
Сообщение #5


Michael_Rybak
*****

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

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


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



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

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

Во-вторых, последний цикл у тебя от 2 до 50, а нужно от 2 до n.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 12.12.2007 14:22
Сообщение #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;


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


Michael_Rybak
*****

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

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


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

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


Профи
****

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

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


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

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


Michael_Rybak
*****

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

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


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


Профи
****

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

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


...у автора по-другому: 1*9,2*10,3*9...8*16
..буду ждать его разъяснения..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
NESC
сообщение 12.12.2007 20:03
Сообщение #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 
 К началу страницы 
+ Ответить 
klem4
сообщение 12.12.2007 20:10
Сообщение #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

 



- Текстовая версия 20.07.2025 13:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"