Уже 2 месяца пытаюсь решить эту задачу...взгляните пожалуйста
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Уже 2 месяца пытаюсь решить эту задачу...взгляните пожалуйста - 2009-11-16 10:23:38.490000
|
|
|
famous4el
Сообщений: 1
Оценки: 0
Присоединился: 2009-11-16 10:13:24.816666
|
Даны целые числа a1, … , a30. Пусть M – наибольшее, а m – наименьшее из a1, … , a30. Получить в порядке возрастания все целые из интервала (M, m), которые не входят в последовательность a1, … , a30 . Без массива тут никуда это я понимаю….самый бред это то что числа которые не входят в последовательность а1…..а30 надо выписать в ручную….или сделать это так, что бы программа сама их написала….. вообще в шоке, меня преподша грузит по паскалю жестоко то и дело задаёт самую бредовую задачу…..Буду благодарен если окажете милость разобраться в задаче, спасибо заранее
|
|
|
RE: Уже 2 месяца пытаюсь решить эту задачу...взгляните пожалуйста - 2009-11-16 10:52:51.336666
|
|
|
Login_hochu
Сообщений: 1471
Оценки: 0
Присоединился: 2007-07-15 14:19:23.423333
|
1 Ввести массив с консоли или получить другим способм 2 Найти M и m 3 В интервале m → M с шагом 1 перебирать все числа. Если число не входит в массив, то вывод на печать. Самому писать лень некогда, но с удовольствием помогу найти ошибки в Вашем коде. ЗЫ Для решения задач на Паскале есть прикрепленный топик. Добро пожаловать на форум.
|
|
|
RE: Уже 2 месяца пытаюсь решить эту задачу...взгляните пожалуйста - 2009-11-17 04:20:58.056666
|
|
|
tymowka
Сообщений: 3
Оценки: 0
Присоединился: 2009-11-07 00:37:33.080000
|
quote:
ORIGINAL: Login_hochu 1 Ввести массив с консоли или получить другим способм 2 Найти M и m 3 В интервале m → M с шагом 1 перебирать все числа. Если число не входит в массив, то вывод на печать. Самому писать лень некогда, но с удовольствием помогу найти ошибки в Вашем коде. ЗЫ Для решения задач на Паскале есть прикрепленный топик. Добро пожаловать на форум. Соглашусь с Вами. Только предлагаю не искать M и m, а отсортировать масив и тогда первый и последний элементы и будут M и m. Так проще дальше будет перебирать все числа. quote:
ORIGINAL: famous4el Даны целые числа a1, … , a30. Пусть M – наибольшее, а m – наименьшее из a1, … , a30. Получить в порядке возрастания все целые из интервала (M, m), которые не входят в последовательность a1, … , a30 . Без массива тут никуда это я понимаю….самый бред это то что числа которые не входят в последовательность а1…..а30 надо выписать в ручную….или сделать это так, что бы программа сама их написала….. вообще в шоке, меня преподша грузит по паскалю жестоко то и дело задаёт самую бредовую задачу…..Буду благодарен если окажете милость разобраться в задаче, спасибо заранее Я предлагаю Вашему вниманию самый понятный с точки зрения смысла, но не самый оптимальный алгоритм. Во-первых, числа вводятся последовательно в массив с клавы. Можно задавать рандомно, можно читать из файла - надо подправить, но не знаете как? Обращайтесь. Затем их сортируем. Первый и последний элементы и будут M и m (Надеюсь вы знакомы с сортировками, если нет, можно и без этого обойтись, но тогда дальнейшая часть программы изменится. Если знакомы с другим видом сортировки, то можете заменить эту часть кода на более Вам понятную). Затем последовательно перебираем все числа от m+1 до M-1 и, если такого числа нет в массиве, выводим на экран. Эта часть программы оптимальней реализуется через множества, но всё же думаю, что такая програмная реализация Вам понятнее. А вот собственно и код:
program z_1;
var a: array [1..30] of integer;
i,j,c:integer;
tr:boolean;
begin
for i:=1 to 30 do begin
write('a[',i,'] = ');
readln(a[i]);
end;
for i:=1 to 29 do
for j:=i+1 to 30 do
if a[i]>a[j] then begin
c:=a[j];
a[j]:=a[i];
a[i]:=c;
end;
for i:=a[1]+1 to a[30]-1 do begin
tr:=false;
for j:=2 to 29 do
if i=a[j] then tr:=true;
if tr=false then write(i,' ');
end;
end.
Мда, если Вы это называете грузит жестоко, то Вам повезло, что Вы не учились у нас =) А вообще, ты зря здесь эту тему опубликовал. Правила нарушаешь: quote:
Запрет на просьбы о решении домашних, лабораторных, курсовых и прочих работ. цель форума - взаимовыгодная помощь в вопросах программирования, а не поощрение лени и невежества. есть разделы форума, посвящённые работе за деньги, и есть разделы, посвящённые халяве. Этот раздел к ним не относится. Вот есть специальные разделы, где можно попросить помочь решить свою задачу: http://forum.xakep.ru/m_1622287/tm.htm http://forum.xakep.ru/m_1439200/tm.htm
|
|
|
RE: Уже 2 месяца пытаюсь решить эту задачу...взгляните пожалуйста - 2009-11-21 15:18:48.760000
|
|
|
faza09
Сообщений: 259
Оценки: 0
Присоединился: 2009-05-18 22:19:25.963333
|
помню нам тоже любили задать такую чушь на дом))
|
|
|
RE: Уже 2 месяца пытаюсь решить эту задачу...взгляните пожалуйста - 2009-11-30 12:43:28.973333
|
|
|
ydzero
Сообщений: 100
Оценки: 0
Присоединился: 2008-11-06 15:38:02.560000
|
uses crt;
var a:array[1..30] Of integer;
min,max,i,j:integer;
f:boolean;
begin
clrscr;
randomize;
a[1]:=50-random(100);
min:=a[1];
max:=a[1];
{Вводим массив и ищем минимум и максимум.}
for i:=2 to 30 do
begin
a[i]:=50-random(100);
if min>a[i] then min:=a[i];
if max<a[i] then max:=a[i];
end;
{Для визуальности показываем массив.}
for i:=1 to 30 do write(a[i],' ');
readln;
{Для визуальности показываем минимум и максимум.}
writeln('Max=',max,' Min=',min);
readln;
{Выводим целые, которые не входят в массив.}
for i:=min to max do
begin
f:=true;
for j:=1 to 30 do if i=a[j] then f:=false;
if f then write(i,' ');
end;
readln;
end. Можно через один цикл, но не так понятно будет.
|
|
|
|
|