Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Прошу помочь с Pascal (http://www.tehnari.ru/f41/t36727/)

Tusha-kutusha 05.06.2010 16:39

Прошу помочь с Pascal
 
Решите пожалуйста две задачи по Pascal не понимаю я как их делать весь инет обшарил ни чиго подобного не нашел препод помогать не хочет
1)Дан массив A(N) (N— четное). Сформировать массив B(M), элементами которого являются средние арифметические соседних пар рядом стоящих в массиве А чисел. (Например, массив А состоит из элементов 1; 3; 5; -2; 0; 4; 0; 3. Элементами массива В будут 2; 1,5; 2; 1,5).
2)Ввести N чисел, проверить, являются ли введенные числа перестановкой {1,2,3,4,.....,2*n-1}.
Заранее спасибо

Vladimir_S 05.06.2010 18:35

Цитата:

Сообщение от Tusha-kutusha (Сообщение 343314)
Решите пожалуйста две задачи по Pascal не понимаю я как их делать весь инет обшарил ни чиго подобного не нашел препод помогать не хочет
1)Дан массив A(N) (N— четное). Сформировать массив B(M), элементами которого являются средние арифметические соседних пар рядом стоящих в массиве А чисел. (Например, массив А состоит из элементов 1; 3; 5; -2; 0; 4; 0; 3. Элементами массива В будут 2; 1,5; 2; 1,5).

Код:

CONST
 N=5;
VAR
 A:ARRAY[1..2*N] of REAL;
 B:ARRAY[1..N] of REAL;
 i:INTEGER;
BEGIN
 For i:=1 to 2*N do
  begin
  Write('A[',i:2,']= ');
  ReadLn(A[i]);
  end;
 WriteLn;

 For i:=1 to N do
  B[i]:=(A[2*i-1]+A[2*i])/2;

 For i:=1 to 2*N do
  Write(A[i]:6:2);
 WriteLn;

 Write(B[1]:9:2);
 For i:=2 to N do
  Write(B[i]:12:2);
 WriteLn;

 ReadLn;
END.

Естественно, константу N (в программе N - это половина длины исходного массива) можно заменить. Как и формат вывода.

Vladimir_S 05.06.2010 18:56

Цитата:

Сообщение от Tusha-kutusha (Сообщение 343314)
2)Ввести N чисел, проверить, являются ли введенные числа перестановкой {1,2,3,4,.....,2*n-1}.
Заранее спасибо

Сформулируйте условия задачи так, чтобы было понятно. Пока я не понимаю следующего:

1. n и N - это одно и то же число? Тогда количество введенных чисел отличается от количества чисел в последовательности. И что, предполагается выборка из последовательности? Или N = 2*n-1 ?
2. В чем смысл условия нечетности количества членов последовательности? В предыдущей задаче наложение условия четности понятно и оправдано, а здесь?

В общем, сформулируйте задачу как следует. Сразу скажу, что отговорки типа "А мне так дали!" НЕ ПРИНИМАЮТСЯ.

Tusha-kutusha 06.06.2010 10:15

Цитата:

Сообщение от Vladimir_S (Сообщение 343384)
Сформулируйте условия задачи так, чтобы было понятно. Пока я не понимаю следующего:

1. n и N - это одно и то же число? Тогда количество введенных чисел отличается от количества чисел в последовательности. И что, предполагается выборка из последовательности? Или N = 2*n-1 ?
2. В чем смысл условия нечетности количества членов последовательности? В предыдущей задаче наложение условия четности понятно и оправдано, а здесь?

В общем, сформулируйте задачу как следует. Сразу скажу, что отговорки типа "А мне так дали!" НЕ ПРИНИМАЮТСЯ.

Огромное человеческое спасибо за первую задачу.
1.Как я понял N - количество элементов в массиве к примеру 10. 2*n-1 предполагается n число в массиве к примеру n=2 получается 2*2-1=3.
2.Смысл данной задачи ( и не только этой) мне самому непонятен,подходил к преподавателю с просьбой объяснить на пальцах что к чему ответила отказом.Она у нас молодая подозреваю сама не вьезжает в то что преподает а эти задачи остались от другого преподавателя она ими и пользуется.

MrSTEP 06.06.2010 10:21

Цитата:

Сообщение от Tusha-kutusha (Сообщение 343532)
1.Как я понял N - количество элементов в массиве к примеру 10. 2*n-1 предполагается n число в массиве к примеру n=2 получается 2*2-1=3.

В таком случае вместо n лучше использовать i.
Цитата:

2.Смысл данной задачи ( и не только этой) мне самому непонятен,подходил к преподавателю с просьбой объяснить на пальцах что к чему ответила отказом.Она у нас молодая подозреваю сама не вьезжает в то что преподает а эти задачи остались от другого преподавателя она ими и пользуется.
И как же она собирается проверять работоспособность задачи и правильность выдаваемых результатов?

Как я понимаю,данная формула описывает последовательность нечетных чисел. Но откуда тогда в примере 2, 4?

Tusha-kutusha 06.06.2010 10:35

Цитата:

Сообщение от MrSTEP (Сообщение 343535)
В таком случае вместо n лучше использовать i.И как же она собирается проверять работоспособность задачи и правильность выдаваемых результатов?

Как я понимаю,данная формула описывает последовательность нечетных чисел. Но откуда тогда в примере 2, 4?

Вот так вот и крутимся вертимся,через знакомых кто то обьесняет,некоторые решения находим в интернете.Если в задаче нет ошибок хотя бы запускается тогда тогда принимает а правильно или нет Я уже не знаю как она выясняет.

В таком случае вместо n лучше использовать i.
Как я понимаю,данная формула описывает последовательность нечетных чисел. Но откуда тогда в примере 2, 4?
Мне ни чиго не обьяснили дали и все крутись как хочешь но реши.Вы в этом понимаете куда больше меня полагаюсь на вас.

Vladimir_S 06.06.2010 10:57

Цитата:

Сообщение от Tusha-kutusha (Сообщение 343532)
2.Смысл данной задачи ( и не только этой) мне самому непонятен

Значит так. Всё, чем могу помочь - это выдать программу решения задачи, как я ее (задачу) понимаю. А понимаю я ее так: Ввести N чисел. Проверить, является ли введенный массив перестановкой членов натурального ряда от 1 до N. Если это не то, ну что же - выясняйте, будем разбираться.
Задачу я решал так.
1. Вводится массив.
2. Проверяется, нет ли среди членов массива чисел, меньших 1 или бОльших N. Если есть - ответ отрицательный.
3. Проверяется, нет ли среди членов массива равных чисел. Если есть - ответ отрицательный.
4. При невыполнении условий п. 2 и 3 ответ положительный.
Код:

CONST
 N=10;
VAR
 A:ARRAY[1..N] of BYTE;
 i,j:INTEGER;
 b:Boolean;
BEGIN
 For i:=1 to N do
  begin
  Write('A[',i:2,']= ');
  ReadLn(A[i]);
  end;
 WriteLn;

 b:=true;
 For i:=1 to N do
  If (A[i]<=0) or (A[i]>N) then b:=false;

 If b then
  begin
  For i:=1 to N-1 do
    For j:=i+1 to N do
    If A[i]=A[j] then b:=false;
  end;

 If b then
  WriteLn('The array is a permutation')
 else
  WriteLn('The array is not a permutation');

 ReadLn;
END.


Tusha-kutusha 06.06.2010 11:09

Цитата:

Сообщение от Vladimir_S (Сообщение 343545)
Значит так. Всё, чем могу помочь - это выдать программу решения задачи, как я ее (задачу) понимаю. А понимаю я ее так: Ввести N чисел. Проверить, является ли введенный массив перестановкой членов натурального ряда от 1 до N. Если это не то, ну что же - выясняйте, будем разбираться.
Задачу я решал так.
1. Вводится массив.
2. Проверяется, нет ли среди членов массива чисел, меньших 1 или бОльших N. Если есть - ответ отрицательный.
3. Проверяется, нет ли среди членов массива равных чисел. Если есть - ответ отрицательный.
4. При невыполнении условий п. 2 и 3 ответ положительный.
Код:

CONST
 N=10;
VAR
 A:ARRAY[1..N] of BYTE;
 i,j:INTEGER;
 b:Boolean;
BEGIN
 For i:=1 to N do
  begin
  Write('A[',i:2,']= ');
  ReadLn(A[i]);
  end;
 WriteLn;

 b:=true;
 For i:=1 to N do
  If (A[i]<=0) or (A[i]>N) then b:=false;

 If b then
  begin
  For i:=1 to N-1 do
    For j:=i+1 to N do
    If A[i]=A[j] then b:=false;
  end;

 If b then
  WriteLn('The array is a permutation')
 else
  WriteLn('The array is not a permutation');

 ReadLn;
END.


Да превратится один день вашей жизни в тысячу О Vladimir_S.
Благодарю за помощь.

MrSTEP 06.06.2010 12:28

Цитата:

Если в задаче нет ошибок хотя бы запускается тогда тогда принимает а правильно или нет Я уже не знаю как она выясняет.
на слове "принимает" можно остановиться. В таком случае ей можно сдавать любой бред, похожий на решение задачи. И чему она вас научит, спрашивается??
Да, с изучением программирования в нашей стране ситуации одна другой интереснее..

Tusha-kutusha 06.06.2010 13:13

Цитата:

Сообщение от MrSTEP (Сообщение 343566)
на слове "принимает" можно остановиться. В таком случае ей можно сдавать любой бред, похожий на решение задачи. И чему она вас научит, спрашивается??
Да, с изучением программирования в нашей стране ситуации одна другой интереснее..

Ей как и всем преподам главное отработать свои часы и свалить побыстрее,на качество образования как то им до одного места.Что им дало министерство образования то они нам втирают.много непонятного с системой образования почему АС изучаем бурение?делаем всякие расчеты,выбираем долота,турбобуры,насосы и прочию простите хрень,а у бурильщиков на втором курсе таких предметов и помимо нет у них это только появится на третьем курсе.На первом курсе рассчитывали сколько потомство принесет самка полевки,на втором долота боюсь представить что будет на третьем и четвертом если еще до живу не попа в психушку...


Часовой пояс GMT +4, время: 04:07.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.