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

Двумерный массив. Заменить все 0 на 5

21.07.2014, 10:54. Показов 2304. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Суть задачи: двумерный массив. Заменить все 0 на 5.
Я вот написал код:
Как сделать назад выведение на стринггрид, что бы все 0 были заменены на 5


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.Button1Click(Sender: TObject);
a :array [1..2,1..6] of integer;
i,j:integer;
zum,k:integer;
begin
k:=5;
// считывание матрицы
for i := 1 to 2 do
  for j := 1 to 6 do
    a[i,j]:=StrToInt(StringGrid1.Cells[i-1,j-1]);
  for i:=1 to 2 do
    for j := 1 to 6 do
      if a[i,j]=0 then
            a[i,j]:=k;//замена 0 на 5
 
 
 
 
end;
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.07.2014, 10:54
Ответы с готовыми решениями:

Дан двумерный массив 5*5 Заменить все его отрицательные элементы нулем
Я в Делфи недавно и нам задали написать две программы. Если кто-нибудь знает как решить напишите...

Двумерный массив. Заменить все положительные числа на 0.
Помогите найти ошибку в моей программе... почему-то не получается. Помогите пожалуйста :) ...

Двумерный массив. Заменить все симметричные элементы на нули
Заменить все симметричные элементы на нули это числа 11, 22 ...

Двумерный массив. Заменить все элементы массива, кратные 7, на 0
1)Ввести двумерный массив. Вывести исходный массив на экран. Заменить все элементы массива, кратные...

13
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
21.07.2014, 11:04 2
Лучший ответ Сообщение было отмечено MultyStepan как решение

Решение

Цитата Сообщение от MultyStepan Посмотреть сообщение
Delphi
1
2
3
4
// считывание матрицы
for i := 1 to 2 do
 for j := 1 to 6 do
 a[i,j]:=StrToInt(StringGrid1.Cells[i-1,j-1]);
т.е. у Вас в StringGrid два столбца и 6 строк?

Цитата Сообщение от MultyStepan Посмотреть сообщение
Как сделать назад выведение на стринггрид, что бы все 0 были заменены на 5
ну, точно так же, как и считваете:
Pascal
1
2
3
for i := 1 to 2 do
  for j := 1 to 6 do
    StringGrid1.Cells[i-1,j-1]:=IntToStr(a[i,j]);
1
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.07.2014, 11:19 3
Лучший ответ Сообщение было отмечено MultyStepan как решение

Решение

Можно объединить замену и вывод
Delphi
1
2
3
4
5
6
for i := 1 to 2 do
for j := 1 to 6 do
 begin
  if a[i,j]=0 then a[i,j]:=5;
  StringGrid1.Cells[j-1,i-1]:=IntToStr(a[i,j]);//сначала столбцы, потом строки
 end;
1
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
21.07.2014, 11:34 4
Цитата Сообщение от Puporev Посмотреть сообщение
StringGrid1.Cells[j-1,i-1]:=IntToStr(a[i,j]);//сначала столбцы, потом строки
угу. в дебильном StringGrid сначала идёт индекс столбца, потом индекс строки.

Но если менять вывод, тогда нужно и чтение из StringGrid'а менять.

Я ведь не просто так спросил MultyStepan о том, сколько у него столбцов, а сколько строк!!
Цитата Сообщение от Sergio Leone Посмотреть сообщение
т.е. у Вас в StringGrid два столбца и 6 строк?

p.s. строго говоря, тут можно вообще без массива A обойтись!
0
northener
21.07.2014, 11:44
  #5

Не по теме:

Цитата Сообщение от Sergio Leone Посмотреть сообщение
угу. в дебильном StringGrid сначала идёт индекс столбца, потом индекс строки.
Дебильно читать слева-направо сверху-вниз? :)

0
Sergio Leone
21.07.2014, 11:47
  #6

Не по теме:

Цитата Сообщение от northener Посмотреть сообщение
Дебильно читать слева-направо сверху-вниз?
дебильно, когда в одном случае принято так, в другом - по другому.
Если Вам дадут массив (см. у ТС выше) A : array[1..2, 1..6] of Integer - то, по вашему сколько в нём строк и сколько столбцов.
Вот в этом ИМХО и есть "дебилизм" :(

0
northener
21.07.2014, 12:05
  #7

Не по теме:

Пардон, я ошибся.

0
3 / 3 / 4
Регистрация: 08.02.2014
Сообщений: 213
21.07.2014, 12:18  [ТС] 8
извините господа ошибся в у меня 2 строки и 6 столбцов

Добавлено через 3 минуты
значит уточню на будущие: в СтригГриде.
[j,i]
j-столбцы??
i-строки?
Всегда в начале столбцы, а потом строки?
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.07.2014, 12:27 9
В СтрингГриде для обозначения индексов ячеек первым указывается индекс столбца, вторым индекс строки.
В матрицах наоборот, поэтому при чтении и записи матриц в таблицу индексы указываются соответственно
Delphi
1
StringGrid1.Cells[j,i]:=IntToStr(a[i,j]);//если отсчет начинается с одинакового индекса(с 0 или 1...)
Добавлено через 4 минуты
Цитата Сообщение от Sergio Leone Посмотреть сообщение
строго говоря, тут можно вообще без массива A обойтись!
Задача на массив, он может быть нужен для каких-то вычислений, а вот без таблицы как раз можно обойтись, массив можно вывести и в другой компонент.
1
3 / 3 / 4
Регистрация: 08.02.2014
Сообщений: 213
21.07.2014, 12:31  [ТС] 10
Вот код рабочей и программы.
Pascal
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
procedure TForm1.Button1Click(Sender: TObject);
var
a :array [1..6,1..2] of integer;
j,i:integer;
zum,k:integer;
begin
k:=5;
// считывание матрицы
for j := 1 to 6 do
  for i := 1 to 2 do
    a[j,i]:=StrToInt(StringGrid1.Cells[j-1,i-1]);
  for j:=1 to 6 do
    for i := 1 to 2 do
      if a[j,i]=0 then
            a[j,i]:=k;//замана 0 на 5
      for j := 1 to 6 do
        for i := 1 to 2 do
        StringGrid1.Cells[j-1,i-1]:=IntToStr (a[j,i]);
 
 
 
 
 
 
end;
 
end.
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.07.2014, 12:33 11
Цитата Сообщение от MultyStepan Посмотреть сообщение
StringGrid1.Cells[j-1,i-1]:=IntToStr (a[j,i]);
Что в лоб, что по лбу....
1
3 / 3 / 4
Регистрация: 08.02.2014
Сообщений: 213
21.07.2014, 12:33  [ТС] 12
А можно пример кода, в котор можно без массива обойтись.
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.07.2014, 12:40 13
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
for i := 0 to 1 do
for j := 0 to 5 do
if StringGrid1.Cells[i,j]='0'
then StringGrid2.Cells[i,j]:='5'
else StringGrid2.Cells[i,j]:=StringGrid1.Cells[i,j]
end;
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
21.07.2014, 13:58 14
Цитата Сообщение от MultyStepan Посмотреть сообщение
А можно пример кода, в котор можно без массива обойтись.
или, чуть изменив код, если допустимо одним гридом обойтись (менять прямо в нём), то:
Delphi
1
2
3
for i := 0 to StringGrid1.ColCount-1 do
  for j := 0 to StringGrid1.RowCount-1 do
     if Trim(StringGrid1.Cells[i,j])='0' then StringGrid1.Cells[i,j]:='5';

только не забудьте, что у Вас:
Цитата Сообщение от Puporev Посмотреть сообщение
Задача на массив, он может быть нужен для каких-то вычислений
т.е. без массива у Вас решение могут банально не принять!
0
21.07.2014, 13:58
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2014, 13:58
Помогаю со студенческими работами здесь

Двумерный массив. Все четные элементы массива заменить нулями
Все четные элементы массива заменить нулями. Заполнение массива произвести случайными целыми...

Ввести двумерный массив A и заменить все отрицательные элементы на ноль
3. написать программу вводит двумерный массив A(N,M) и заменяет все отрицательные элементы на ноль

Двумерный массив. Заменить все элементы, попадающие в интервал [a, b], нулем
Двумерный массив "Дана последовательность целых чисел. Заменить все элементы, попадающие в...

Двумерный массив. Заменить все отрицательные элементы на их абсолютное значение, а все положительные - на их отрицательные эквиваленты
1) Дан двухмерный массив вещественных чисел размерностью N*M. Замените все отрицательные элементы...

Ввести двумерный массив целых чисел размерностью 2 на 4. Заменить все четные элементы на 0
Ввести двумерный массив целых чисел размерностью 2 на 4. Заменить все четные элементы числом 0....

Двумерный массив. Заменить все отрицательные числа нулями. Подсчитать сумму положительных
1) Двумерный массив 3 на 3 заполнить вводом чисел с клавиатуры. Вывести полученный массив. Заменить...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
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-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru