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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2018, 13:54   #1
Asahur
 
Регистрация: 20.03.2018
Сообщений: 5
По умолчанию Задание в делфи: матрице A3x2 заменить все элементы, меньшие по абсолютной величине единицы, единицей.

матрице A3x2 заменить все элементы, меньшие по абсолютной
величине единицы, единицей. Вывести на экран обе матрицы в виде
НЕ МОГУ РАЗОБРАТЬСЯ С ЗАМЕНОЙ ПРИ НАЖАТИИ КНОПКИ
Asahur вне форума Ответить с цитированием
Старый 21.03.2018, 14:01   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

А в чем проблема? При нажатии кнопки вызывается соответствующий обработчик, а в нем прописывай что хошь - хоть замену, хоть музыку из "Серенады солнечной долины".
Вывод на экран - а что, приложение консольное? Если Дельфи, то выводят куда-нибудь поприличнее - или в Memo, или в StrinGrid к примеру.
А где тот код, что не получается ?
digitalis вне форума Ответить с цитированием
Старый 21.03.2018, 14:06   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если заменять в исходной матрице:
Код:
for i:=1 to 3 do
  for j:=1 to 2 do 
    if abs(A[i,j])<1 then A[i,j] := 1;
если нужно получить вторую матрицу:
Код:
for i:=1 to 3 do
  for j:=1 to 2 do 
    if abs(A[i,j])<1 then B[i,j] := 1 else B[i,j] := A[i,j];
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2018, 01:18   #4
Asahur
 
Регистрация: 20.03.2018
Сообщений: 5
По умолчанию

Спасибо
Asahur вне форума Ответить с цитированием
Старый 22.03.2018, 03:12   #5
Asahur
 
Регистрация: 20.03.2018
Сообщений: 5
По умолчанию Задание в делфи

Помогите в чем ошибка
В матрице A3x2 заменить все элементы, меньшие по абсолютной
величине единицы, единицей. Вывести на экран обе матрицы в виде
таблиц 3x2.
Изображения
Тип файла: jpg IMG_20180322_100814.jpg (83.3 Кб, 124 просмотров)
Asahur вне форума Ответить с цитированием
Старый 22.03.2018, 08:56   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Delphi типизированный язык. И все преобразования между типами данных должны проводиться явно(описаны в программе) strtoint(...) inttostr(...) ...
abs(здесь данные ЧИСЛОВОГО типа)
StringGrid1 в своих ЯЧЕЙКАХ(Cells) содержит данные СТРОКОВОГО типа.
если коротко, то строка НЕ ЕСТЬ число (хотя там и может быть записано какое-либо представление числа).

Сообщение об ошибке надо не фотографировать, а Сopy + Paste.
P.S. я знаю что там совсем не это, но ...
  1. к этому судя по всему еще придем
  2. в тексте есть подсказка
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 22.03.2018, 09:06   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 22.03.2018, 09:13   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Delphi типизированный язык. И все преобразования между типами данных должны проводиться явно
Не все. Например, integer можно присвоить в real.

Да и не сильно типизированные языки обычно тоже не конвертируют сами между строками и числами. При этом например конвертация чисел в строку при конкатенации ("Answer: " + 42) есть почти везде, включая и "типизированные" C++, Java, C#, ...
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.03.2018, 09:25   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Asahur Посмотреть сообщение
Помогите в чем ошибка
ошибка в том, что StringGrid - это НЕ МАССИВ.
Это некий объект, класса TStringGrid, который представляет собой визуальный компонент, со своими свойствами и методами. см. например, http://www.delphi-manual.ru/stringgrid.php

Доступ к ячейками через свойство Cells
Только учтите, что

1) в StringGrid хранятся СТРОКИ. поэтому, если нужны числа, используйте преобразование StrToFloat() и при записи в ячейку FloatToStr

2) в массиве для индексации элементов общепринято идёт сначала номер (индекс) строки элемента, потом номер столбца.
A[2,5] - это элемент 2-й строки и 5-го столбца.
А свойстве Cells наоборот - сначала указывается номер столбца, потом номер строки.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В матрице n-го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине. Hunter__ Общие вопросы Delphi 3 07.05.2017 08:08
Заменить все элементы массива, которые делятся без остатка на «3», на единицы (9); KatyaV Помощь студентам 2 07.11.2016 10:32
вещественная матрица размером n×m. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее ( делфи 7 ) evgenia 1992 Помощь студентам 1 03.04.2012 15:16
в массиве все максимальные элементы заменить первым элементом, а все минимальные элементы заменить последним элементом Валерия2701 Паскаль, Turbo Pascal, PascalABC.NET 1 12.10.2011 15:49
заменить нулем все элементы меньшие введенного числа Сашуня Паскаль, Turbo Pascal, PascalABC.NET 2 23.05.2011 22:18