![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Я учусь на первом курсе в университете по специальности "Инженер по информационным системам и технологиям. Передо мной стоит задача, написать программу по этому условию: Дано 100 вещественных чисел. Вычислить разность между максимальным и минимальным из них.
Написал исходный текст: на делфи
Конечно же я воспользовался формой StringGrid. Задал параметры для 100 чисел (сделал таблицей 10х10), но возникает несколько проблем: Программа запускается. Я вношу 100 чисел и при нажатии кнопки вычислить программа выдает ошибку Project Project1.exe raised exception class EConvertError with message"' is not a valid floating point value' Process stopped. Use Step or Run to continue. Я вношу поправку в циклы for, меняю значения (вместо 100 ставлю 5). Программа работает, но при вводе чисел в таком порядке 3 5 1 4 выдает, что минимальный элемент массива 2 (хотя должен быть 1). При вводе по порядку выдает все правильно. Помогите пожалуйста разобраться... |
|||
|
||||
| WaReZMEN |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Вопервых ты пишеш 4 элемента
Возможно ты напутал с кол-вом строк и столбцов в stringrid. P.S. можно в строчке
сделать так
Но никто не гарантирует что никто туда не впишет букву Вот тебе пример все работает как надо.. Это сообщение отредактировал(а) WaReZMEN - 8.4.2008, 04:50 Присоединённый файл ( Кол-во скачиваний: 16 )
Source.rar 2,79 Kb |
||||||||
|
|||||||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Огромное СПС. Это я понял. Но кто мне объяснит это на примере двумерного или многомерного массива? Надо ведь массив для 100 чисел... Помогите пожалуйста, буду очень признателен.
Это сообщение отредактировал(а) OuterHeaven - 8.4.2008, 16:33 |
|||
|
||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
И еще вопрос мне не понятно, что это за параметры StringGrid.cells? (выделено красным цветом) |
|||
|
||||
| WaReZMEN |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
OuterHeaven ,
И еще я себе струдом представляю (а проще говоря вообще не предстовляю) каим образом ты многомерный масив из StringGrid заполнять будеш ну двух мерный реально а трех???? Кстате поимоиму у тебя с алгоритмом что то не то ну тебе виднее.... Вот тебе пример 2-х мерного: Присоединённый файл ( Кол-во скачиваний: 9 )
Source.rar 2,91 Kb |
||||
|
|||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
А как тогда мне поступить? Чем можно воспользоваться еще для ввода многомерного массива как не StringGrid. Мне нужен массив, который сосотоит из таблицы 10x10. В общей сложности я смогу ввести в него 100 чисел. И среди них должен найти наименьшее и наибольшее значение. К стати я пробовал твою программу она показывает неправильно минимальное число (если ввести числа не по порядку) Я только начинающий смотрю в чем проблема...
Это сообщение отредактировал(а) OuterHeaven - 9.4.2008, 03:06 |
|||
|
||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
OuterHeaven, ну программа не моя а твоя
|
|||
|
||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Может если вам не трудно... Вы поможете мне. Просто я не знаю как исправить код, чтобы программа правильно находила минимальные числа, и как заполнить массив случайными числами? Какие функции используются для этого...
Заранее спасибо. |
|||
|
||||
| WaReZMEN |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Ну все просто ошибка твоя в том что ищя минимальный элемент ты сравниваеш текущис максимальным и думаеш что если текущий меньше максимального то это минимальный это не так
а нужно так
Вторая ошибка в том что ты вычисляеш разницу между максимальным и минимальным элементом каждый раз и выводиш тоже каждый раз а это не правельно. Карочи вот тебе код учись студент Присоединённый файл ( Кол-во скачиваний: 19 )
Source.rar 3,21 Kb |
||||
|
|||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Надеюсь я тоже так когда нибудь смогу, ОГРОМНОЕ ВАМ СПАСИБО. Буду дальше учиться
|
|||
|
||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Вот у меня есть вопросы, правильно я прокоментировал исходный код? Там где мне не понятно, я выставил вопросы. Заранее спс. Это сообщение отредактировал(а) OuterHeaven - 10.4.2008, 22:11 |
|||
|
||||
| Kaboom |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 25.5.2007 Репутация: нет Всего: нет |
Все верно.
Маленькие замечания:
Этими циклами мы проходим весь StringGrid и загоняем значения ячеек в массив: сначала получаем ячейку [1,1],[1,2],...[1, StringGrid1.RowCount-1] - это первый ряд StringGrid'а, потом второй ..., третий и т. д.
При нажатии на кнопку SpeedButton1 количество строк в StringGrid'e станет равным числу введенному в Edit2 + 1
Аналогично для колонок. |
||||||
|
|||||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
OuterHeaven, Да правельно с учетами канечно с коректировкой Kaboom.
|
|||
|
||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Cпасибо БОЛЬШОЕ!
|
|||
|
||||
| Alex133 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
А можно попросить вас написать это на Паскале? ну пожалуйста..
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |