Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 02.10.2017, 17:14   #1
qqq``
Пользователь
 
Регистрация: 05.09.2017
Сообщений: 26
Репутация: 10
По умолчанию дан двумерный массив пользователь вводит натуральные числа,массив размером N на M .Все числа из которых можно извлечь корень извлекаются все числа меньше нуля заменяются их модулем

не получается использовать функцию sqrt выдает ошибку типов

Код:

procedure TForm1.Button1Click(Sender: TObject);
const N=5;
      M=5;
  var
    i,j,a:integer ;
    begin
   for i:=1 to N do begin
  for j:=1 to M do begin
  if (sqrt(Strtoint(stringgrid1.cells[i-1,j-1]))) then
  a:=(strtoint(stringgrid1.cells[i-1,j-1]));
  if a<0 then
  a:=a*-1 ;
  end;
  end;
end

______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 02.10.2017 в 17:22.
qqq`` вне форума   Ответить с цитированием
Старый 02.10.2017, 17:21   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,571
Репутация: 3570

icq: 512-765
skype: alexp.frl
По умолчанию

Секретную ошибку?
Alex11223 вне форума   Ответить с цитированием
Старый 02.10.2017, 17:24   #3
qqq``
Пользователь
 
Регистрация: 05.09.2017
Сообщений: 26
Репутация: 10
По умолчанию

секретную? (extended)
qqq`` вне форума   Ответить с цитированием
Старый 02.10.2017, 17:24   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,396
Репутация: 5596
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Секретную ошибку?
почему - "секретную"?

ведь
оператор IF требует логический тип (boolean),
а sqrt в этой строке
Цитата:
Код:

if (sqrt(Strtoint(stringgrid1.cells[i-1,j-1]))) then

возвращает вещественный.

Цитата:
Сообщение от qqq`` Посмотреть сообщение
не получается использовать функцию sqrt выдает ошибку типов
что Вы хотели написать? Для чего Вам операция извлечения квадратного корня?
что Вы проверяете в операторе IF ?

p.s. я уже не говорю про то, что нет проверки на то, что в ячейках грида именно целые числа (а не мусор) и что они положительные.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 02.10.2017, 17:26   #5
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,571
Репутация: 3570

icq: 512-765
skype: alexp.frl
По умолчанию

Ну автор не опубликовал ее. Видимо секрет.
Alex11223 вне форума   Ответить с цитированием
Старый 02.10.2017, 17:32   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,396
Репутация: 5596
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Видимо секрет.
так он думает, что вот тут он об ошибке написал - #3


а задание не годится.
Цитата:
пользователь вводит натуральные числа,массив размером N на M .Все числа из которых можно извлечь корень извлекаются все числа меньше нуля....
см. определение натуральных чисел.
натуральные числа не бывают меньше нуля.
думаю, что речь идёт о ЦЕЛЫХ числах.
вот они могут быть и положительными и отрицательными.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 02.10.2017, 17:35   #7
qqq``
Пользователь
 
Регистрация: 05.09.2017
Сообщений: 26
Репутация: 10
По умолчанию

я хотел проверить число которое пользователь ввел в ячейку и если квадрат вычисляется да то stringgrid1.cells[i-1,j-1] :=stringgrid1.cells[i-1,j-1]
qqq`` вне форума   Ответить с цитированием
Старый 02.10.2017, 17:58   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,396
Репутация: 5596
По умолчанию

Цитата:
Сообщение от qqq`` Посмотреть сообщение
я хотел проверить число которое пользователь ввел в ячейку и если квадрат вычисляется
квадратный корень вычисляется для ВСЕХ неотрицательных чисел.

поэтому
Код:

var f : Extended;
    i, j : Integer;
begin
   ....
   for i:=0 to N-1 do   //N строк 
       for j:=0 to M-1 do begin  // M столбцов
         try
           f := StrToFloat( stringgrid1.cells[j-1, i-1] );
           if f>=0 
             then f := sqrt(f)
             else f:= abs(f);
           stringgrid1.cells[j-1, i-1] := FloatToStr(f)
	 except
	  on Exception : EConvertError do
	      ShowMessage(Exception.Message);
	  end;
       end;


Последний раз редактировалось Serge_Bliznykov; 02.10.2017 в 18:01.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 02.10.2017, 18:08   #9
qqq``
Пользователь
 
Регистрация: 05.09.2017
Сообщений: 26
Репутация: 10
По умолчанию

спасибо
qqq`` вне форума   Ответить с цитированием
Старый 02.10.2017, 18:11   #10
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,396
Репутация: 5596
По умолчанию

пожалуйста.

обратите внимание, я в таблице допустил внесение ВЕЩЕСТВЕННЫХ (дробных) чисел.

Если нужны строго целые числа - тогда замените StrToFloat() на StrToInt(), а FloatToStr() замените на IntToStr()
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральные числа N, M. Найти все натуральные числа, меньшие N, квадрат суммы цифр которых равен M Namatrasnik Помощь студентам 1 04.11.2016 00:29
Дано линейный целочисленный массив. Заменить в нем все элементы, значение которых меньше некоторог числа К на значение К. Подсчита PASKAL12 Помощь студентам 2 04.12.2013 19:30
дан двумерный массив и натуральные числа k и p,поменять местами элементы k и p столбцов массива np9Huk Помощь студентам 4 19.04.2010 12:59
вводим два числа, получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m Sparky Помощь студентам 2 22.11.2009 22:59
Дан двумерный массив случайных чисел. Построить одномерный из исходного, выбрав из него все числа кратные ProWinD Паскаль 2 16.06.2008 20:12


09:53.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru