Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.01.2009, 18:13
SkilL SkilL вне форума
Прохожий
 
Регистрация: 29.01.2009
Сообщения: 3
Репутация: 10
По умолчанию Парочка елементарных задач для нормального уровня програмиста

Кароче писать помогите умераю убьют и т.д. и т.п. не буду
помогите просто кто чем сможет на завтро нада вот задачки кто ответит указывайте номер задачки

№ 1
Даны символы s1, s2,…. Известно, что символ s1 отличен от пробела и что среди s2, s3,……. Имеется хотя бы один пробел. Рассматриваются s1,…..,sn – символы, предшествующие первому пробелу (n заранее неизвестно). Преобразовать последовательность s1,……., sn:

удалив из каждой группы идущих подряд цифр, в которых более двух цифр и которой предшествует точка, все цифры, начиная с третьей ( например, ab+0.1973 – 1.1 преобразуется в ab+0.19-1.1)

№ 2
Даны натуральные числа n, m; найти НОД (n, m). Использовать программу, включающую рекурсивную процедуру вычисления НОД, основанную на соотношении НОД (n, m) = НОД (m, r), где r – остаток от деления на m. Чем эта программа хуже нерекурсивной программы вычисления НОД (n, m)?

№3
Даны натуральные числа n, x1, y1, r1, x2, y2, r2, ………, xn, yn, rn. Построить на экране окружность с центрами в точках (xi,yi) и радиусами ri, если ri>5, и радиусами 2ri в противном случае.

№4
Даны натуральное число n, символы s1, ……., sn. Преобразовать последовательность s1, ………, sn, заменив в ней:

Каждую из групп стоящих рядом точек многоточием (т.е. тремя точками)

№5
Дана действительная последовательность квадратная матрица порядка 9. Получить целочисленную квадратную матрицу того же порядка, в которой элемент равен единице, если соответствующий ему элемент исходной матрицы больше элемента, расположенного в его строке на главной диагонали, и равен нулю в противном случае.

№6
Даны натуральное число n, действительные числа x1,y1,x2,y2,…..,xn,yn. Найти площадь n – угольника, вершины которого при некотором последовательном обходе имеют координаты (x1, y1), (x2, y2), …., (xn, yn). (Определить процедуру вычесления площади треугольника по координатам его вершин.)

№7


P.S. >>>> Заранее благодарен

Последний раз редактировалось SkilL, 29.01.2009 в 18:18.
Ответить с цитированием
  #2  
Старый 29.01.2009, 19:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Это не решения, а подсказка куда двигаться.
1. Анализ с сохранением истории. Данные можно хранить в строке. Уиклом бежишь по строке и находишь подходящую группу символов. Далее ее обрабатываешь с вычислением сдвига (можно просто stringreplace) и бежишь дальше.
2. Ну тут просто. Само вычисление и есть рекурсивная процедура, которая вызывает саму себя. Там еще нужен признак останова рекурсии.
Хуже - тем, что жрет больше памяти - каждый раз организовывается стек.
3. Тоже все просто. Создать запись, включающую x,y, r. Далее массив от 1 до n таких структур. Бежим циклом и строим. Лучше использовать TPaintBox с буферным битмапом - рисуем все на битмапе, а потом ыесь битмап рисует на пэйнтбоксе.
4. Что есть группа? 2 и более символов? Ну и на что меняем - на 3 символа или на 1? А в остальном безумно похоже на задачу №1.
5. Вложенные циклы и 2 двумерных массива.
6. Ну тут формулу напомни...
7. Цикл While. Делаешь функцию расчета i-го члена последовательности и соответсвенно в цикле While пока не выполнится условие.
Ответить с цитированием
  #3  
Старый 29.01.2009, 21:13
SkilL SkilL вне форума
Прохожий
 
Регистрация: 29.01.2009
Сообщения: 3
Репутация: 10
По умолчанию

ну это у тебя все так просто а мне нужно хотябы текст от begina до enda ну а функции и процедуры сам уже сделаю просто я ничего не учил а завтро нада сдать эту так называемую практику ато за нее будут дрючить больше чем за сессию
Спс и на это хоть знаю в каком направлении двигатся но конечно лутше бы было парочка хотя бы 2 первых что бы кто то риснул =)))
Ответить с цитированием
  #4  
Старый 29.01.2009, 22:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну например, №3. В упрощенном варианте, когда всегда идет полная перерисовка. Ну и пропустим заполнение массива.

Код:
type
  TCircle = record
     x, y, r : Integer
  end;

type
  Form1 = class(TForm)
    pbDraw : TPaintBox;
    procedure pbDrawPaint(Sender : TObject);
  end;

var
  ACircles : Array Of TCircle;

procedure TForm1.pbDrawPaint(Sender : TObject);
var
  I : Integer;
  R : TRect;
begin
  With pbDraw.Canvas Do
    begin
      Brush.Color := clWhite;
      pbDraw.Canvas.Pen.Color := clBlack;
      pbDraw.Canvas.FillRect(Rect(0,0,pbDraw.Width,pbDraw.Height);
      For I := Low(ACircles) To High(ACircles) Do
         begin
            If ACircles[i].r > 5 
              Then R := Rect(ACircles[i].x - Int(ACircles[i].r/2), ACircles[i].y - Int(ACircles[i].r/2),ACircles[i].x + Int(ACircles[i].r/2), ACircles[i].y + Int(ACircles[i].r/2))
              Else R := Rect(ACircles[i].x - ACircles[i].r, ACircles[i].y - ACircles[i].r,ACircles[i].x + ACircles[i].r, ACircles[i].y + ACircles[i].r/2);
            Ellipse(R);
        end;
    end;
end;

Вот и вся задача. Рисовать будет не красиво, но правильно.
Ответить с цитированием
  #5  
Старый 29.01.2009, 23:04
SkilL SkilL вне форума
Прохожий
 
Регистрация: 29.01.2009
Сообщения: 3
Репутация: 10
По умолчанию

спс но лутше бы показал как 1,2, и 7, ну 7 не столь важно я ее даже сдавать не хочу =))
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:12.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025