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


Ответ
 
Опции темы Опции просмотра
Старый 12.01.2011, 19:22   #1 (permalink)
Юрий Бадюн
Новичок
 
Регистрация: 12.01.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Массив Pascal

Дан массив X(20). Заменить максимальный элемент (или все, если их несколько) на 0.
И блок схему если кто знает, помогите пожалуйста=)))
Юрий Бадюн вне форума   Ответить с цитированием

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

Рекомендую поискать информацию в похожих темах

Массив в VBA
Массив
Pascal. Динамический массив
Массив в с++

Старый 13.01.2011, 15:11   #2 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Так как вы не указали: тип массива, способ его задания, я предлагаю вам такой вариант:
Код:
const
n=20;
var
x:array [1..n] of integer;
i,max,m:integer;
begin
randomize;
max:=-1000;
for i:=1 to n do begin
x[i]:=random(100);
write (x[i],' ');
if x[i]>max then 
begin 
 max:=x[i]; 
   m:=i;
end;
end;
x[m]:=0;
writeln;
for i:=1 to  n do
write (x[i],' ');
readln
end.

Последний раз редактировалось shrek=); 13.01.2011 в 15:13 Причина: :))
shrek=) вне форума   Ответить с цитированием
Старый 13.01.2011, 15:17   #3 (permalink)
Юрий Бадюн
Новичок
 
Регистрация: 12.01.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо) Подскажи пожалуйста как блок схему построить)
Юрий Бадюн вне форума   Ответить с цитированием
Старый 13.01.2011, 15:19   #4 (permalink)
FAIR
Member
 
Аватар для FAIR
 
Регистрация: 12.01.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

примерная блок-схема
Замечание:
У нас ссылки на файлообменники не приветствуются. Файл .doc можно прикрепить обычным образом, либо, если он слишком большой, упаковав предварительно в ZIP-архив.
Модератор
.

FAIR вне форума   Ответить с цитированием
Старый 13.01.2011, 15:24   #5 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Shrek, к сожалению, Ваша программа не отрабатывает ситуации типа "или все, если их несколько". Поэтому я бы предложил так:
вместо

Код:
begin 
 max:=x[i]; 
   m:=i;
end;
end;
x[m]:=0;
сделать так:
Код:
 max:=x[i]; 
end;
for i:=1 to n do
 if x[i]=max then x[i]:=0;
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.01.2011, 16:20   #6 (permalink)
Юрий Бадюн
Новичок
 
Регистрация: 12.01.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А как на Бэйсике это будет выглядеть???
Юрий Бадюн вне форума   Ответить с цитированием
Старый 13.01.2011, 16:36   #7 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Уважаемый Юрий на этом форуме халява не очень приветствуется, попробуйте сами, а вас если, что не верно подредактируют.
shrek=) вне форума   Ответить с цитированием
Старый 13.01.2011, 18:45   #8 (permalink)
Юрий Бадюн
Новичок
 
Регистрация: 12.01.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Randomize timer
n=20
Dim x(n)
n,i As integer
For i=1 to 20
Input X(n)
Next i
Max=-1000
For i=1 to 20
next
Print "max. element=;n
If x(i)>max then
max=x(n)
end
for i=1 to n
if x(i)=max then x(i)=0
print
for i=1 to n
Print x(i)
next i
end

Что не так? подскажите пжлста???
Юрий Бадюн вне форума   Ответить с цитированием
Старый 13.01.2011, 19:14   #9 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 14,460
Записей в дневнике: 57
Сказал(а) спасибо: 124
Поблагодарили 150 раз(а) в 62 сообщениях
Репутация: 59633
По умолчанию

Цитата:
Сообщение от Юрий Бадюн Посмотреть сообщение
Randomize timer
n=20
Dim x(n)
n,i As integer
For i=1 to 20
Input X(n)
Next i
Max=-1000
For i=1 to 20
next
Print "max. element=";n
If x(i)>max then
max=x(n)
end
for i=1 to n
if x(i)=max then x(i)=0
print
for i=1 to n
Print x(i)
next i
end
1) зачем вы инициализируете генератор псевдослучайных значений, если массив заполняете вручную? И, кстати, зачем вы 20 раз вводите значение в 20-ый элемент массива? К чему было инициализировать переменную n, если все попытки её использования у вас ошибочны?
2) зачем вам пустой цикл на 20 итераций?
3) при использовании оператора Print текст нужно заключать в кавычки с обоих сторон.
4) ваша программа заканчивает выполняться после выделенного красным оператора end
5) какой смысл спрашивать о поиске максимального элемента в массиве и замене его значения на 0, если в программе вы выводите в качестве его значения число 20?
6) В первом ветвлении вы в любом случае в качестве максимального элемента принимаете последний (20-ый) элемент массива
7) цикл, в котором вы производите замену максимального значения на 0, у вас без next
8) последний цикл вообще можно не писать, а реализовать вывод значения текущего элемента массива в предыдущем цикле сразу после ветвления с заменой значений.
Подытожим:
Вашу программу легче написать заново, чем исправить!
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 13.01.2011, 19:41   #10 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 14,460
Записей в дневнике: 57
Сказал(а) спасибо: 124
Поблагодарили 150 раз(а) в 62 сообщениях
Репутация: 59633
По умолчанию

Код:
n=20
Dim x(n) 
For i=1 to n
Input x(i)
Next i
Max=-1000
For i=1 to n
If x(i)>max then max=x(i)
next i
for i=1 to n
if x(i)=max then x(i)=0
print x(i)
next i
end
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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