Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2012, 16:51   #1
Roman1295
Пользователь
 
Регистрация: 06.09.2012
Сообщений: 51
По умолчанию Задача на массивы.

Всем добрый день! Условия задачи таковы: Определить, содержит ли массив элементы, равные минимальному элементу.
Как я понял:
Сначала объявляем переменные. Заполняем массив рандомными числами.
Условно принимаем 1 элемент массива за минимальное значение.
Запускаем цикл и сравниваем каждый элемент с минимальным значением. Если результат меньше - присваиваем новому значению минимальное, а в конце цикла выводим.
Что получилось:
Код:
var min,i:integer; mas: Array[1..20] of integer;
begin
for i:=1 to 20 do
mas[i]:=random(100);
min:=mas[1];             
for i:=2 to 20 do
if mas[i]<min then
mas[i]:=min;    
writeln(min); end.
Он выводит какие-то два числа. Я так и не понял, решил ли задачу или нет?

И еще задача, условие которой я не совсем понял. Кто-нибудь сможет объяснить условие по-другому?
(i и i-(+)1 - это нижний индекс).
Вывести номера локальных максимумов, т.е. таких Ai, что
A i-1 < Ai >A i+1

Последний раз редактировалось Roman1295; 01.10.2012 в 16:54.
Roman1295 вне форума Ответить с цитированием
Старый 01.10.2012, 17:01   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Определить, содержит ли массив элементы, равные минимальному элементу.

любой не пустой массив содержит как минимум 1 элемент, равный минимальному )

видимо, минимальный элемент надо вводить с клавиатуры, или нужно ввести количество таких элементов, иначе задача превращается из программисткой в философскую.


> выводит какие-то два числа

какие ещё 2 числа, у вас один writeln()


> решил ли задачу или нет

вряд ли. ваш код все элементы, которые меньше первого, присваивает первому. зачем, хз.


> объяснить условие по-другому?

вывести индексы чисел, которые больше двух рядомстоящих соседей
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 01.10.2012, 18:33   #3
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Код:
var min,i,c:integer;
mas: Array[1..20] of integer;
begin
randomize;
for i:=1 to 20 do begin
    mas[i]:=random(30);
    write(mas[i]:3)
    end;
min:=mas[1];
for i:=1 to 20 do
    if mas[i]<min then
       min:=mas[i];
c:=0;
for i:=1 to 20 do
    if mas[i]=min then
       inc(c);
writeln;
writeln('Минимальный элемент = ',min,' и встречайтся ',c-1,' раз');
end.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на массивы в Си. jusstes Фриланс 4 12.11.2010 19:41
Задача на массивы Grabberhtf Помощь студентам 0 12.10.2010 07:06
задача на массивы Withoutemotions Паскаль, Turbo Pascal, PascalABC.NET 6 28.06.2010 02:26
задача на массивы lini Помощь студентам 2 20.09.2009 21:28
Массивы на C++задача Wia Помощь студентам 1 20.12.2008 01:08