IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> 4 задачи и куча вопросов...., практика.....
сообщение
Сообщение #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 задаче...... просто даже толком не понятно, что нужно...
ну пока вроде всё... huh.gif


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Анка   4 задачи и куча вопросов....   8.07.2005 16:13
volvo   Анка, (она же Незнакомка? или я ошибаюсь? :rolley…   8.07.2005 16:22
volvo   Это, по-моему, тоже решалось, но ... const russ …   8.07.2005 16:46
Анка   volvo, klem4, спасибо, но 4 задачу я как раз решил…   8.07.2005 16:50
volvo   Насчет операций с векторами - Type  TVector …   8.07.2005 17:01
Анка   volvo, а можете мне объяснить вот эту строчку? Я п…   8.07.2005 19:11
volvo   Ну, это же стандартный метод "пузырька".…   8.07.2005 19:37
Анка   volvo, спасибо, просто я не поняла только как раз …   9.07.2005 1:11
volvo   А потому, что в процессе сортировки более "л…   9.07.2005 1:51
Анка   что-то у меня Паксаль не хочет признавать процедур…   9.07.2005 2:38
volvo   Прикрепи свою программу в аттаче или вышли мне в л…   9.07.2005 2:50
Анка   я сейчас попробую пока сама разобраться.... надеюс…   10.07.2005 19:20
volvo   Ну, так приведи код, КАК заполняются массивы. Теле…   10.07.2005 19:23
Анка   volvo, не знаю, правильно ли, но решила разбить вы…   10.07.2005 21:22
volvo   Ну, значит, и результат будет почти правильный... …   10.07.2005 21:37
Анка   Там только заменены переменные, типа arr[i] на a[i…   10.07.2005 23:26
volvo   Так присоедини весь PAS-файл... Жмешь кнопку …   11.07.2005 0:18
Archon   Это можно сделать. Сперва перейти в оконный режим …   11.07.2005 3:07
Анка   а можно случайно сгенерировать текст (или строку)?…   11.07.2005 19:24
klem4   конечно можно, если возможны все символы, то нап…   11.07.2005 20:02
volvo   Никогда больше так не делай... Ты должен генериро…   11.07.2005 20:07
Анка   klem4, а что такое n? количество символов в строке…   11.07.2005 20:26
volvo   Я конечно не klem4 :) Именно количество символов …   11.07.2005 20:39
Анка   а что такое count? какого типа? хм..... volvo, а к…   12.07.2005 1:45
volvo   Count - типа Byte (больше нет смысла, все равно в …   12.07.2005 2:20
Анка   volvo, а у меня n типа integer, зачем byte? с файл…   12.07.2005 13:01
volvo   А зачем Integer? Все равно больше 255 нельзя, но …   12.07.2005 13:36
Анка   volvo, спасибо, сейчас подредактирую, мне нужна ка…   12.07.2005 13:51
Анка   что-то у меня немного не получается с 4, так как я…   13.07.2005 16:18
volvo   Попробуй вот так: begin str_ok := True; { введи…   13.07.2005 16:44
Анка   volvo, спасибо, куда писать, я знаю, но эта переме…   13.07.2005 16:58
Romtek   Я что-то не вижу где здесь переменная S...   13.07.2005 17:32
Анка   при случайной генерации....... смотрите выше.....…   13.07.2005 18:12
Romtek   у меня все записывается в переменную s, как вы пок…   13.07.2005 18:29
Romtek   mx[k][j] - такой формы записи в Паскале не существ…   13.07.2005 18:33
Анка   так в том-то и проблема, что они разных типов, а…   13.07.2005 18:38
Анка   тогда почему на этом же форуме есть запись вот т…   13.07.2005 18:49
Romtek   Понятно. У тебя матрица определена по-другому. Зна…   13.07.2005 19:02
Анка   или я что-то не понимаю, но нужные столбцы он меня…   13.07.2005 21:07
volvo   Какие столбцы ???? О чем речь вообще? Об обработке…   13.07.2005 21:28
Анка   volvo, я не знаю, что делать..... а столбцы это я …   13.07.2005 21:46
volvo   My fault ... Извиняюсь, я просто поставил лишнюю з…   13.07.2005 21:57
Анка   volvo, я ее и не ставила..... правила я знаю......…   13.07.2005 22:05
volvo   Проверь PM ...   13.07.2005 22:11


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 5:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name