С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
9 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 21

Одномерные массивы. Все работает, вроде правильно. Как лучше организовать код!?

05.05.2013, 13:21. Показов 1150. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:
Ввести элементы одномерного массива размером 50 с использованием генератора случайных чисел в диапазоне [0-100]. Определить:
• количество элементов, делящихся на 3 и их сумму;
• минимальный и максимальный элементы массива и их номера.

код который получился
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
procedure TForm1.Button1Click(Sender: TObject);
var
  ch:array[0..50]of integer;
  i,min,max,chislo,summa,elem:integer;
  st:string;
begin
      st:='';
      //ìàññèâ ñ èñïîëüçîâàíèåì ãåíàðàòîðà ñëó÷àéíûõ ÷èñåë
      for i:=1 to 50 do
        ch[i]:=random(100);
      //âûâîä ìàññèâà
      for i:=1 to 50 do
        st:=st+inttostr(i)+' '+inttostr(ch[i])+#13;
          label1.Caption:=st;
      //ïîèñê ìèíèìàëüíîãî ýëåìåíòà ìàññèâà
      min:=1;
        for i:=1 to 50 do
          if ch[i]<ch[min] then min:=i;
            label3.Caption:=' Ìèíèìàëüíûé ýëåìåíò ìàññèâà: '+inttostr(ch[min])+' Íîìåð ýëåìåíòà: '+inttostr(min);
      //ïîèñê ìàêñèìàëüíîãî ýëåìåíòà ìàññèâà
      max:=50;
        for i:=1 to 50 do
          if ch[i]>ch[max] then max:=i;
            label5.Caption:=' Ìàêñèìàëüíûé ýåëåìíò ìàññèâà: '+inttostr(ch[max])+' Íîìåð ýëåìåíòà: '+inttostr(max);
      //ïîèñê ýëåìåíòîâ äåëÿùèõñÿ íà 3 è èõ ñóììà
      summa:=0;
      elem:=0;
      for i:=1 to 50 do
        if ch[i] MOD 3=0 then
          begin
            summa:=summa+ch[i];
              elem:=elem+1;
                end;
              label2.Caption:='Êîëè÷åñòâî ýëåìåíòîâ äåëÿùèõñÿ íà 3= '+inttostr(elem)+' '+'ñóììà= '+inttostr(summa);
 
end;
 
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2013, 13:21
Ответы с готовыми решениями:

Почему не работает код, хотя вроде всё правильно
Есть код. Предполагается, что при помещении текста в RichEdit текст будет подстраиваться под размеры окна. Rect: TRect; ...

Делаю игру "Сапер", Все сделано, вроде все правильно работает, кроме таймера
Не знаю как остановить таймер, когда поле уже все в минах, и еще на каждом уровне время бесконечное, а должно быть везде разное.

Подскажите, не работает код, не могу понять почему - вроде бы все правильно
Доброго времени суток Есть задача - при клике на кнопку должен создаваться параграф в теле документа, в который добавляется значение...

8
http://1248.site
130 / 118 / 20
Регистрация: 15.05.2012
Сообщений: 341
Записей в блоге: 10
05.05.2013, 17:29
по моему коды выглядит красиво, можно даже взять такой стиль на вооружение.

Главное понятно есть задание с пунктами и четко видны подпункты реализации.
1
 Аватар для fort
8 / 8 / 2
Регистрация: 30.04.2013
Сообщений: 75
05.05.2013, 18:09
Попробуй так, как вариант:
Delphi
1
2
3
      max_elem:=0;
      for i:=0 to High(ch) do max_elem := max(max_elem, ch[i]);
      label5.Caption:=' Максимальный эелемент массива: '+inttostr(max_elem);
http://www.delphibasics.ru/Max.php
http://www.delphibasics.ru/Array.php
1
9 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 21
06.05.2013, 13:44  [ТС]
РАБОТАЕТ, НО НЕ ПРАВИЛЬНО ПОКАЗЫВАЕТ!
...
Delphi
1
2
3
4
5
6
7
8
9
10
11
//ïîèñê ìèíèìàëüíîãî ýëåìåíòà ìàññèâà
      min_elem:=0;
        for i:=0 to HIGH(ch) do
          min_elem:=MIN(min_elem, ch[i]);
            label3.Caption:=' Ìèíèìàëüíûé ýëåìåíò ìàññèâà: '+inttostr(min_elem)+' Íîìåð ýëåìåíòà: '+inttostr(ch[min_elem]);
      //ïîèñê ìàêñèìàëüíîãî ýëåìåíòà ìàññèâà
      max_elem:=50;
        for i:=0 to HIGH(ch)do
          max_elem:=MAX(max_elem, ch[i]);
            label5.Caption:=' Ìàêñèìàëüíûé ýëåìåíò ìàññèâà: '+inttostr(max_elem)+' Íîìåð ýëåìåíòà: '+inttostr(ch[max_elem]);
      //ïîèñê ýëåìåíòîâ äåëÿùèõñÿ íà 3 è èõ ñóììà
...
0
 Аватар для fort
8 / 8 / 2
Регистрация: 30.04.2013
Сообщений: 75
06.05.2013, 14:01
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//поиск минимального элемента массива
      min_elem:=0;  // <<- здесь должно быть значение которое заведомо больше любого другого значения
                          // ты же выбираешь из 2-х наименьший
        for i:=0 to HIGH(ch) do
          min_elem:=MIN(min_elem, ch[i]);
 
      label3.Caption:=' Минимальный элемент массива: '+inttostr(min_elem)+' Номер элемента: '+inttostr(ch[min_elem]);
 
      //поиск максимального элемента массива
      max_elem:=50;  // <<- а здесь должно быть 0
        for i:=0 to HIGH(ch)do
          max_elem:=MAX(max_elem, ch[i]);
 
      label5.Caption:=' Максимальный элемент массива: '+inttostr(max_elem)+' Номер элемента: '+inttostr(ch[max_elem]);
//поиск элементов делящихся на 3 и их сумма
Добавлено через 1 минуту
а еще лучше так:
Delphi
1
2
min_elem:=ch[0] 
max_elem:=ch[0]
1
9 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 21
06.05.2013, 14:09  [ТС]
Цитата Сообщение от fort Посмотреть сообщение
а еще лучше так:
Код Delphi
1
2
min_elem:=ch[0]
max_elem:=ch[0]
ща попробую!
0
9 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 21
06.05.2013, 14:28  [ТС]
идея хорошая, но увы...не работает! Все равно спс!
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
06.05.2013, 14:47
Оптимизация - друг ошибкам и враг наглядности
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
st:='';  min:=1;  max:=1; summa:=0; elem:=0;
      //массив с использованием генаратора случайных чисел
      for i:=1 to 50 do
         begin
           ch[i]:=random(100);
           st:=st+inttostr(i)+' '+inttostr(ch[i])+#13;
           if ch[i]<ch[min] then min:=i;
           if ch[i]>ch[max] then max:=i;
           if ch[i] MOD 3=0 then
            begin
               summa:=summa+ch[i];
               elem:=elem+1;
            end;
         end;  
   
      label1.Caption:=st;
  
      label3.Caption:=' Минимальный элемент массива: '+inttostr(ch[min])+' Номер элемента: '+inttostr(min);
     
      label5.Caption:=' Максимальный эелемнт массива: '+inttostr(ch[max])+' Номер элемента: '+inttostr(max);
           
      label2.Caption:='Количество элементов делящихся на 3= '+inttostr(elem)+' '+'сумма= '+inttostr(summa);
 
end;
1
9 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 21
06.05.2013, 14:59  [ТС]
круто!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2013, 14:59
Помогаю со студенческими работами здесь

Вроде все правильно но не работает
&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Переменные&lt;/title&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt; ...

Не создаеться кнопка. все вроде правильно но оно не работает
доброе время суток! Помогите создать кнопку, все вроде правильно, но кнопка не появляется на фрейме ! Я первый раз делаю кнопку так что...

Посмотрите) Вроде правильно все но не работает. Что не так?
Вообщем проблема такая. Должен в базу заносить данные из StringGrid'а, а по факту в базу вносится только значение для &quot;Cena&quot;, а...

Задача на рекурсию - почему вроде бы ошибочный код внутри работает правильно?
Изучаю учебник C++, решаю задачки в конце глав. В одной задачке надо было написать рекурсивную функцию, получающую в качестве...

Проверьте кому не трудно код, делал вроде правильно, а все равно не так
namespace ConsoleApplication1 { static double mas = { {4.3, 0.217, 0, 0, 2.663}, {0.1, -3.4, -0.207, 0, 2.778}, {0, 0.09,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru