![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Кароче писать помогите умераю убьют и т.д. и т.п. не буду
помогите просто кто чем сможет на завтро нада вот задачки кто ответит указывайте номер задачки № 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
|
|||
|
|||
![]() Это не решения, а подсказка куда двигаться.
1. Анализ с сохранением истории. Данные можно хранить в строке. Уиклом бежишь по строке и находишь подходящую группу символов. Далее ее обрабатываешь с вычислением сдвига (можно просто stringreplace) и бежишь дальше. 2. Ну тут просто. Само вычисление и есть рекурсивная процедура, которая вызывает саму себя. Там еще нужен признак останова рекурсии. Хуже - тем, что жрет больше памяти - каждый раз организовывается стек. 3. Тоже все просто. Создать запись, включающую x,y, r. Далее массив от 1 до n таких структур. Бежим циклом и строим. Лучше использовать TPaintBox с буферным битмапом - рисуем все на битмапе, а потом ыесь битмап рисует на пэйнтбоксе. 4. Что есть группа? 2 и более символов? Ну и на что меняем - на 3 символа или на 1? А в остальном безумно похоже на задачу №1. 5. Вложенные циклы и 2 двумерных массива. 6. Ну тут формулу напомни... 7. Цикл While. Делаешь функцию расчета i-го члена последовательности и соответсвенно в цикле While пока не выполнится условие. |
#3
|
|||
|
|||
![]() ну это у тебя все так просто а мне нужно хотябы текст от begina до enda ну а функции и процедуры сам уже сделаю просто я ничего не учил а завтро нада сдать эту так называемую практику ато за нее будут дрючить больше чем за сессию
Спс и на это хоть знаю в каком направлении двигатся но конечно лутше бы было парочка хотя бы 2 первых что бы кто то риснул =))) |
#4
|
|||
|
|||
![]() Ну например, №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
|
|||
|
|||
![]() спс но лутше бы показал как 1,2, и 7, ну 7 не столь важно я ее даже сдавать не хочу =))
|