Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 05.06.2010, 16:39   #1 (permalink)
Tusha-kutusha
Новичок
 
Регистрация: 05.06.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Прошу помочь с 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}.
Заранее спасибо
Tusha-kutusha вне форума   Ответить с цитированием

Старый 05.06.2010, 16:39
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Обсуждения которые так или иначе похожи на вашу тему уже встречались, рекомендую вам их просмотреть

Прошу помочь со светодиодами
Прошу помочь. Сломался MP3 плеер
Прошу помочь с выбором

Старый 05.06.2010, 18:35   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Tusha-kutusha Посмотреть сообщение
Решите пожалуйста две задачи по 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   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Tusha-kutusha Посмотреть сообщение
2)Ввести N чисел, проверить, являются ли введенные числа перестановкой {1,2,3,4,.....,2*n-1}.
Заранее спасибо
Сформулируйте условия задачи так, чтобы было понятно. Пока я не понимаю следующего:

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

В общем, сформулируйте задачу как следует. Сразу скажу, что отговорки типа "А мне так дали!" НЕ ПРИНИМАЮТСЯ.
Vladimir_S вне форума   Ответить с цитированием
Старый 06.06.2010, 10:15   #4 (permalink)
Tusha-kutusha
Новичок
 
Регистрация: 05.06.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

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

В общем, сформулируйте задачу как следует. Сразу скажу, что отговорки типа "А мне так дали!" НЕ ПРИНИМАЮТСЯ.
Огромное человеческое спасибо за первую задачу.
1.Как я понял N - количество элементов в массиве к примеру 10. 2*n-1 предполагается n число в массиве к примеру n=2 получается 2*2-1=3.
2.Смысл данной задачи ( и не только этой) мне самому непонятен,подходил к преподавателю с просьбой объяснить на пальцах что к чему ответила отказом.Она у нас молодая подозреваю сама не вьезжает в то что преподает а эти задачи остались от другого преподавателя она ими и пользуется.
Tusha-kutusha вне форума   Ответить с цитированием
Старый 06.06.2010, 10:21   #5 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

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

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

Последний раз редактировалось MrSTEP; 06.06.2010 в 10:25
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 06.06.2010, 10:35   #6 (permalink)
Tusha-kutusha
Новичок
 
Регистрация: 05.06.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

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

В таком случае вместо n лучше использовать i.
Как я понимаю,данная формула описывает последовательность нечетных чисел. Но откуда тогда в примере 2, 4?
Мне ни чиго не обьяснили дали и все крутись как хочешь но реши.Вы в этом понимаете куда больше меня полагаюсь на вас.
Tusha-kutusha вне форума   Ответить с цитированием
Старый 06.06.2010, 10:57   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Tusha-kutusha Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 06.06.2010, 11:09   #8 (permalink)
Tusha-kutusha
Новичок
 
Регистрация: 05.06.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Значит так. Всё, чем могу помочь - это выдать программу решения задачи, как я ее (задачу) понимаю. А понимаю я ее так: Ввести 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.
Благодарю за помощь.
Tusha-kutusha вне форума   Ответить с цитированием
Старый 06.06.2010, 12:28   #9 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Цитата:
Если в задаче нет ошибок хотя бы запускается тогда тогда принимает а правильно или нет Я уже не знаю как она выясняет.
на слове "принимает" можно остановиться. В таком случае ей можно сдавать любой бред, похожий на решение задачи. И чему она вас научит, спрашивается??
Да, с изучением программирования в нашей стране ситуации одна другой интереснее..
MrSTEP вне форума   Ответить с цитированием
Старый 06.06.2010, 13:13   #10 (permalink)
Tusha-kutusha
Новичок
 
Регистрация: 05.06.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от MrSTEP Посмотреть сообщение
на слове "принимает" можно остановиться. В таком случае ей можно сдавать любой бред, похожий на решение задачи. И чему она вас научит, спрашивается??
Да, с изучением программирования в нашей стране ситуации одна другой интереснее..
Ей как и всем преподам главное отработать свои часы и свалить побыстрее,на качество образования как то им до одного места.Что им дало министерство образования то они нам втирают.много непонятного с системой образования почему АС изучаем бурение?делаем всякие расчеты,выбираем долота,турбобуры,насосы и прочию простите хрень,а у бурильщиков на втором курсе таких предметов и помимо нет у них это только появится на третьем курсе.На первом курсе рассчитывали сколько потомство принесет самка полевки,на втором долота боюсь представить что будет на третьем и четвертом если еще до живу не попа в психушку...
Tusha-kutusha вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.