1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Анка |
8.07.2005 12:13
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Женский Репутация: 0 |
Цитата 1. Даны две последовательности a1 ≤ a2 ≤ ... ≤ аn и b1 ≤ b2 ≤ ... ≤ bn. Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей (дополнительный массив не использовать). 2. Расположить столбцы матрицы D[M, N] в порядке возрастания элементов k-ой строки (1 ≤ k ≤ М). 3. Реализовать набор подпрограмм для выполнения следующих операций над векторами: а) сложение; б) вычитание; в) скалярное умножение векторов; г) умножение вектора на число; д) нахождение длины вектора. 1) Дан массив A – массив векторов. Отсортировать его в порядке убывания длин векторов. 2) С помощью датчика случайных чисел сгенерировать 2N целых чисел. N пар этих чисел задают N точек координатной плоскости. Вывести номера тройки точек, которые являются координатами вершин треугольника с наибольшим углом. 4. Дана строка, содержащая произвольный текст. Выяснить чего в нем больше: русских букв или цифр. Мало того, что мне нужно решить все эти задачи, но мне еще нужно объединить их одним меню (хотя это я сделала). Причек все это надо реализовать с выбором способа ввода - с клавы, из файла или случайная генерация. Из-за практики появилось много вопросов. Может кто-нибудь поможет? 1. Не могу решить 1 задачу... что-то не получается... ввести ввожу, а вот дальше... тоже самое обстоит со второй... 2. не понимаю, как можно реализовать 2 пункт в 3 задаче...... просто даже толком не понятно, что нужно... ну пока вроде всё... -------------------- девушка - программистка..... правда я еще только учусь.... :-))
|
![]() ![]() |
| volvo |
8.07.2005 13:01
Сообщение
#2
|
|
Гость |
Насчет операций с векторами -
Код Type TVector = Record X, Y: Real; End; Procedure VAdd(Var a: TVector; b, c: TVector); Begin a.X := b.X + c.X; a.Y := b.Y + c.Y; End; Procedure VSub(Var a: TVector; b, c: TVector); Begin a.X := b.X - c.X; a.Y := b.Y - c.Y; End; Procedure VScale(Var a: TVector; b: TVector; k: Real); Begin a.X := b.X * k; a.Y := b.Y * k; End; { Это - скалярное произведение векторов } Function VDot(a, b: TVector): Real; Begin VDot := a.X * b.X + a.Y * b.Y; End; { Длина вектора } Function VLength(a: TVector): Real; Begin VLength := Sqrt(sqr(a.X) + sqr(a.Y)); End; Можно немного оптимизировать (для большего количества элементов вектора, чтобы не считать все вручную)... Если нужно - говори, я покажу как... Добавлено: Вот пример сортировки массива векторов... Код Type TVector = Record X, Y: Real; End; Function VLength(a: TVector): Real; Begin VLength := Sqrt(sqr(a.X) + sqr(a.Y)); End; const size = 10; type arrType = Array[1 .. size] Of TVector; Procedure Bubble(Var ar: arrType; n: integer); Var i, j: Integer; T: TVector; Begin For i := 1 To n Do For j := n DownTo i+1 Do If VLength(ar[Pred(j)]) > VLength(ar[j]) Then Begin { < } T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T End End; Procedure GetVector(Var v: TVector); Begin With v Do Begin Write('X='); ReadLn(X); Write('Y='); ReadLn(Y); End; End; Procedure PrintVector(v: TVector); Begin With v Do WriteLn('X:',X:10:5,' Y:',Y:10:5) End; Var A: arrType; i: Integer; begin For i := 1 To size Do GetVector(A[i]); { Вводим все вектора } { Сортируем } Bubble(A, size); For i := 1 To size Do PrintVector(A[i]); { Печатаем массив векторов } end. |
| Анка |
8.07.2005 15:11
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Женский Репутация: 0 |
volvo, а можете мне объяснить вот эту строчку? Я просто не могу что-то понять, что это именно за элементы? (ar[Pred(j)] например)
If VLength(ar[Pred(j)]) > VLength(ar[j]) Then Begin { < }
-------------------- девушка - программистка..... правда я еще только учусь.... :-))
|
Анка 4 задачи и куча вопросов.... 8.07.2005 12:13
volvo Анка, (она же Незнакомка? или я ошибаюсь? :rolley... 8.07.2005 12:22
volvo Это, по-моему, тоже решалось, но ...
const
russ ... 8.07.2005 12:46
Анка volvo, klem4, спасибо, но 4 задачу я как раз решил... 8.07.2005 12:50
volvo Ну, это же стандартный метод "пузырька".... 8.07.2005 15:37
Анка volvo, спасибо, просто я не поняла только как раз ... 8.07.2005 21:11
volvo
А потому, что в процессе сортировки более "л... 8.07.2005 21:51
Анка что-то у меня Паксаль не хочет признавать процедур... 8.07.2005 22:38
volvo Прикрепи свою программу в аттаче или вышли мне в л... 8.07.2005 22:50
Анка я сейчас попробую пока сама разобраться.... надеюс... 10.07.2005 15:20
volvo Ну, так приведи код, КАК заполняются массивы. Теле... 10.07.2005 15:23
Анка volvo, не знаю, правильно ли, но решила разбить вы... 10.07.2005 17:22
volvo Ну, значит, и результат будет почти правильный... ... 10.07.2005 17:37
Анка Там только заменены переменные, типа arr[i] на a[i... 10.07.2005 19:26
volvo Так присоедини весь PAS-файл...
Жмешь кнопку ... 10.07.2005 20:18
Archon Это можно сделать. Сперва перейти в оконный режим ... 10.07.2005 23:07
Анка а можно случайно сгенерировать текст (или строку)?... 11.07.2005 15:24
klem4
конечно можно, если возможны все символы, то нап... 11.07.2005 16:02
volvo
Никогда больше так не делай... Ты должен генериро... 11.07.2005 16:07
Анка klem4, а что такое n? количество символов в строке... 11.07.2005 16:26
volvo Я конечно не klem4 :) Именно количество символов ... 11.07.2005 16:39
Анка а что такое count? какого типа? хм.....
volvo, а к... 11.07.2005 21:45
volvo Count - типа Byte (больше нет смысла, все равно в ... 11.07.2005 22:20
Анка volvo, а у меня n типа integer, зачем byte?
с файл... 12.07.2005 9:01
volvo
А зачем Integer? Все равно больше 255 нельзя, но ... 12.07.2005 9:36
Анка volvo, спасибо, сейчас подредактирую, мне нужна ка... 12.07.2005 9:51
Анка что-то у меня немного не получается с 4, так как я... 13.07.2005 12:18
volvo Попробуй вот так:
begin
str_ok := True; { введи... 13.07.2005 12:44
Анка volvo, спасибо, куда писать, я знаю, но эта переме... 13.07.2005 12:58
Romtek Я что-то не вижу где здесь переменная S... 13.07.2005 13:32
Анка
при случайной генерации....... смотрите выше........ 13.07.2005 14:12
Romtek у меня все записывается в переменную s, как вы пок... 13.07.2005 14:29
Romtek mx[k][j] - такой формы записи в Паскале не существ... 13.07.2005 14:33
Анка
так в том-то и проблема, что они разных типов, а... 13.07.2005 14:38
Анка
тогда почему на этом же форуме есть запись вот т... 13.07.2005 14:49
Romtek Понятно. У тебя матрица определена по-другому. Зна... 13.07.2005 15:02
Анка или я что-то не понимаю, но нужные столбцы он меня... 13.07.2005 17:07
volvo Какие столбцы ???? О чем речь вообще? Об обработке... 13.07.2005 17:28
Анка volvo, я не знаю, что делать..... а столбцы это я ... 13.07.2005 17:46
volvo My fault ... Извиняюсь, я просто поставил лишнюю з... 13.07.2005 17:57
Анка volvo, я ее и не ставила..... правила я знаю......... 13.07.2005 18:05
volvo Проверь PM ... 13.07.2005 18:11![]() ![]() |
|
Текстовая версия | 8.12.2025 14:37 |