С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 22
1

StringGrid и массивы

17.12.2013, 08:19. Показов 2035. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет, форумчане.
Я в Делфи не особо разбираюсь, и у меня к вам вот такой вопрос.
У меня дан массив a размерностью n элементов, a[1]:=1, а каждый последующий элемент должен быть в три раза больше предыдущего. Так вот, нужно сформировать массив и вывести в компонент StrinGrid.
Вот что у меня получилось:
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
39
40
41
   unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button2Click(Sender: TObject);
var
a:array[1..100] of integer;
n,i:integer;
begin
For i:=1 to 100 do
if length(StringGrid1.Cells[i-1,0])<> 0
then a[i]:=strtoint(StringGrid1.Cells[i-1,0])
else a[i]:=1;
For i:=1 to 100 do
n:= a[i]*3;
 
end;
 
end.
Заранее благодарю за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2013, 08:19
Ответы с готовыми решениями:

Массивы StringGrid
Помогите пожалуйста!!! Задача состоит в том что надо создать 2-ухмерный массив в...

StringGrid массивы
Помогите, я совсем зеленый в программировании

Задача на массивы в StringGrid
Уважаемые форумчане, требуется ваша помощь, изучаю C++ совсем недолго, строго за нубовопросы не...

Двумерные массивы, StringGrid
Добрый день, форумчане. Пишу с аккаунта друга, сам я в Delphi полный ноль, по этому прошу помощи...

11
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
17.12.2013, 08:59 2
И что делает твой код?
0
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.12.2013, 09:12 3
2 в 99-й - это очень много, ни один целый тип не имеет разрядности, достаточной для его хранения.
0
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 22
17.12.2013, 09:32  [ТС] 4
Знаю, код может быть неверным, скорее всего он и в самом деле неправильный. Призываю вас помочь мне разобраться с компонентом StringGrid и в написании нужного, правильного кода.

Я, в общем плане, представляю что нужно писать, но как дело доходит до реализации мыслей в код, я вхожу в ступор.
Код, который написала я, ошибки никакой не выдает, но и не "пашет".
0
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.12.2013, 09:43 5
Цитата Сообщение от tresltk Посмотреть сообщение
Знаю, код может быть неверным, скорее всего он и в самом деле неправильный.
Дело не в коде, а в типах, они вообще не годны для этой задачи. Нельзя стандартными средствами заполнить 100 ячеек числами так, чтоб каждое следующее было точно в два раза больше предыдущего, это только длинной арифметикой можно сделать. А стандартными типами не больше 63-х, да и то не integer. Integer хватит только на 30 чисел, cardinal на 31.
0
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
17.12.2013, 10:10 6
Цитата Сообщение от tresltk Посмотреть сообщение
Код, который написала я, ошибки никакой не выдает, но и не "пашет".
Код похож на попытку перерисовать картину П. Пикассо. - и как результат: что-то жуткое и не понятное. ))
FIL, попросил описать действия вашего кода. Мне так же интересно увидеть описание.
Разбейте задачу на шаги и решайте последовательно.
Цитата Сообщение от tresltk Посмотреть сообщение
У меня дан массив a размерностью n элементов, a[1]:=1, а каждый последующий элемент должен быть в три раза больше предыдущего. Так вот, нужно сформировать массив и вывести в компонент StrinGrid.
Значит:
задать массив - выполнено почти (есть динамический массив, а исходя из условия должен быть он) читаем, как задается динамический массив.
заполнение массива значениями - читаем, как работать с массивами.
вывод в stringGrid - читаем, как занести данные.
1
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.12.2013, 10:14 7
Блин. В 3. Ещё смешнее. Integer хватиатет до 20-ти чисел, cardinal до 21-го, 64-х бистного знакового до 40-ка, 64-х битного беззнакового до 41-го. Всё, дальше стандартными типами нельзя.
0
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 22
17.12.2013, 11:48  [ТС] 8
Цитата Сообщение от ZfoxAK Посмотреть сообщение
Код похож на попытку перерисовать картину П. Пикассо. - и как результат: что-то жуткое и не понятное. ))
FIL, попросил описать действия вашего кода. Мне так же интересно увидеть описание.
Разбейте задачу на шаги и решайте последовательно.

Значит:
задать массив - выполнено почти (есть динамический массив, а исходя из условия должен быть он) читаем, как задается динамический массив.
заполнение массива значениями - читаем, как работать с массивами.
вывод в stringGrid - читаем, как занести данные.
Спасибо за ссылки, обязательно прочитаю.

И, спасибо всем!
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
17.12.2013, 19:37 9
а каждый последующий элемент должен быть в три раза больше предыдущего. нужно сформировать массив и вывести в компонент StrinGrid.
Все довольно таки очень просто делается:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i: integer;
begin
  StringGrid1.RowCount := 101; //ñòðîêè
  StringGrid1.ColCount := 3; //êîëîíêè
 
  StringGrid1.Cols[0].Add('Ýëåìåíò');
  StringGrid1.Cols[1].Add('Îïåðàöèÿ');
  StringGrid1.Cols[2].Add('Ðåçóëüòàò');
  StringGrid1.RowCount := 101;
  for i := 1 to 100 do
  begin
    StringGrid1.Cols[0].Add('¹ '+IntToStr(i));
    StringGrid1.Cols[1].Add(IntToStr(i)+ ' * 3');
    StringGrid1.Cols[2].Add(IntToStr(i*3));
  end;
end;
Результат работы кода на картинке, я понял так вы хотели?
Изображения
 
1
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
17.12.2013, 19:42 10
По заданию 1-й эл-т = 1, 2-й - в 3 раза больше 1-го (тобишь 3), 3-й = 9 и т.д.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
17.12.2013, 19:45 11
FIL а то есть в квадрате тогда? Ну поменяет операцию уже сам наверное.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
18.12.2013, 00:18 12
а каждый последующий элемент должен быть в три раза больше предыдущего. и вывести в компонент StrinGrid
Кажется разобрался, берем предыдущий полученный результат и перемножаем его на 3.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  a: integer; // îïåðàöèè
  i: integer; // ñ÷åò÷èê
begin
  StringGrid1.RowCount := 11; //ñòðîêè
  StringGrid1.ColCount := 3; //êîëîíêè
 
  StringGrid1.Cols[0].Add('Äåéñòâèå');
  StringGrid1.Cols[1].Add('Îïåðàöèÿ');
  StringGrid1.Cols[2].Add('Ðåçóëüòàò');
  a := 1; //первоначальное значение
  for i := 1 to 10 do
  begin
    StringGrid1.Cols[0].Add('¹ '+IntToStr(i));
    StringGrid1.Cols[1].Add(IntToStr(a)+ ' * 3');
    StringGrid1.Cols[2].Add(IntToStr(a * 3));
    a := a * 3;
  end;
end;
Результат работы действий над операциями в таблице- вроде так как нужно.
Миниатюры
StringGrid и массивы  
1
18.12.2013, 00:18
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2013, 00:18
Помогаю со студенческими работами здесь

Одномерные массивы, StringGrid
Здравствуйте ! Помогите, пожалуйста с лабораторной. Не могу разобраться что и как... Задание: ...

Одномерные массивы. Компонент StringGrid.
На форме расположить компоненты: StringGrid, 6 CheckBox (каждый имеет свое значение, например...

Двумерные Массивы (StringGrid) Пойжалуста Pomogite))
Дана матрица A (5x4). Заполнить ее значениями вещественного типа. Найти максимальное значение в...

Массивы компонентов билдера. Массив Shape и StringGrid
Доброго времени суток Товарищи! Подскажите мне пожалуйста как правильно записать массив из...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru