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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2012, 16:55   #1
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию (Delphi) здча на геометрическую прогрессию

Дан массив ненулевых целых чисел размера N. Проверить, образуют ли его элементы геометрическую прогрессию!
Подскажите что и как делать понимаю что на форму кинуть надо стрингрид или мемо и вывести в едит а что на счет кода...
(вообще я не как с делфи... и в общем тяжко )
Nickolai47 вне форума Ответить с цитированием
Старый 29.10.2012, 17:06   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Если N=1 или N=2, ответ - "да".
Если больше - поделить второй элемент на первый, запомнить ответ. Затем делить третий на второй, четвёртый на третий и т.д. и каждый раз сравнивать с запомненным. Как только не совпадёт - не прогрессия; если дошли до конца и всё время совпадало - прогрессия.
Abstraction вне форума Ответить с цитированием
Старый 31.10.2012, 14:15   #3
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Если N=1 или N=2, ответ - "да".
Если больше - поделить второй элемент на первый, запомнить ответ. Затем делить третий на второй, четвёртый на третий и т.д. и каждый раз сравнивать с запомненным. Как только не совпадёт - не прогрессия; если дошли до конца и всё время совпадало - прогрессия.
мне бы кодом, реализовать это я не смогу
Nickolai47 вне форума Ответить с цитированием
Старый 31.10.2012, 14:23   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Жил был один очень несчастный человек. У него не складывалось с девушками, с работой, и друзей тоже у него не было. Но однажды он шел по берегу моря и нашел лампу. Вспомнив детские сказки, ради шутки потер ее, а оттуда неожиданно вышел джин и сказал:
— Спасибо, что освободил меня. За это я выполню три любых твоих желания.
— Действительно любых? — изумился человек.
— Конечно. Чего ты желаешь?
— Ну, я хочу, чтобы у меня был огромный дом.
— Он у тебя есть, — проговорил джинн, и прямо на пустынном берегу появился роскошный особняк.
— Еще хочу, чтобы у меня была лучшая в мире спортивная машина.
— Пусть будет так, — ответил джинн, и прямо перед домом появилась шикарная спортивная машина, в которой уже лежали ключи и документы.
— Есть у меня еще одно желание, — начал человек, — но даже ты никогда не сможешь сделать этого.
— Пусть будет так, я никогда не смогу сделать этого.
Но если хотите попробовать, то давайте начнём с простого: напишите функцию, которая принимает на вход массив целых чисел и N и возвращает true, если N<=2 и false в противном случае.
Abstraction вне форума Ответить с цитированием
Старый 31.10.2012, 14:47   #5
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Но если хотите попробовать, то давайте начнём с простого: напишите функцию, которая принимает на вход массив целых чисел и N и возвращает true, если N<=2 и false в противном случае.
честно скажу мне это программирование даром не нужно!Но здать я задание обязан!
функции я не когда не писал и не знаю как это делается, делфи я пользоваться могу на примитивной основе!Я обратился на форум чтоб мне такому упырю помогли тут а не мучили
если вы кодом помочь не можете то проходите мимо, или закройде/удалите тему толку все равно я не дождусь...
Nickolai47 вне форума Ответить с цитированием
Старый 01.11.2012, 14:17   #6
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию

Код:
mas:array [1..100] of real;
i,count:integer;
q:Real;
rez:Boolean;
begin
  q:=strtofloat(memo1.lines[1])/strtofloat(memo1.lines[0]);
    rez:=false;
      for i:=2 to memo1.lines.count-1 do
     if (strtofloat(memo1.lines[i])/strtofloat(memo1.lines[i-1])<>q)
   then
 begin
  rez:=true;
   break;
 end;
if not rez then
 edt1.Text:=FloatToStr(q)
  else
   edt1.Text:=FloatToStr(0);
end;
end.
это получилось процедура... как мне сделать чтобы за проверку отвечала функция?Что бы в другой раз я мог её спокойно вызвать!
Nickolai47 вне форума Ответить с цитированием
Старый 15.11.2012, 14:30   #7
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию

ну кто нибудь?
Nickolai47 вне форума Ответить с цитированием
Старый 15.11.2012, 14:34   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
Function TForm.Checkgp:boolean;
var
i:integer;
//q:Real;  q обьявите глобально;
rez:Boolean;
begin
  q:=strtofloat(memo1.lines[1])/strtofloat(memo1.lines[0]);
   result:=true;
      for i:=2 to memo1.lines.count-1 do
     if (strtofloat(memo1.lines[i])/strtofloat(memo1.lines[i-1])<>q)
   then
 begin
  result:=false; exit;
 end;
end;
вызов
Код:
if checkGP then
edt1.Text:=FloatToStr(q)
  else
   edt1.Text:='0';
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 15.11.2012 в 14:37.
Mad_Cat вне форума Ответить с цитированием
Старый 02.12.2012, 18:41   #9
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию

[QUOTE=Mad_Cat;1131715]
Код:
  q:=strtofloat(memo1.lines[1])/strtofloat(memo1.lines[0]);
пишет:Undeclared identifier: 'memo1'
я как понимаю в функции не прокатит визуальный компонент?Как по другому сделать?
Nickolai47 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны четыре вещественных числа, проверить: образуют ли данные числа геометрическую прогрессию (язык C) Даша(S) Помощь студентам 6 04.04.2015 23:43
Pascal. Вывести на экран геометрическую фигуру. plohoh Помощь студентам 4 05.02.2012 00:29
C++. Проверка на прогрессию. 1emm Помощь студентам 9 05.03.2011 16:26
Проверка на арифметическую прогрессию Оксана22081989 Помощь студентам 1 29.01.2010 11:33
Пишу курсовую нужно решить задачу для примера на геометрическую прогрессию (Pascal) =|винтик|= Помощь студентам 4 25.05.2009 16:38