![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.11.2008
Сообщений: 5
|
![]()
Здравствуйте, уважаемые!
Прошу помочь заочнику. Паскаль увидел впервые. Освоение идёт тяжело. Осталось нерешенных две задачи. Прошу не готового решения, а хотел бы понять, как это делается. Функции Написать программу проверки равенства двух векторов. Массивы Дан массив целых чисел, состоящий из 15 элементов. Заполнить с клавиатуры (случайно). Определить, есть ли в данном массиве пара соседних элементов с суммой, равной заданному числу. Кое-что уже решил сам и с помощью интернета. Проверьте, пожалуйста, насколько правильно. Функции Найти: y=max(a,b,c)+min(a,b,c). {Найти: y=max(a,b,c)+min(a,b,c).} Program Func_3_var; uses CRT; var a, b, c, y: integer; {Функция нахождения максимального числа} function Max(a2, b2, c2: integer): integer; var maxN: integer; begin maxN:=a2; if b2>maxN then maxN:=b2; if c2>maxN then maxN:=c2; writeln('Максимальное число - ', maxN); Max:=maxN; end; {Функция нахождения минимального числа} function Min(a3, b3, c3: integer): integer; var minN: integer; begin minN:=a3; if b3<minN then minN:=b3; if c3<minN then minN:=c3; writeln('Минимальное число - ', minN); Min:=minN; end; begin cls; writeln('Введите три числа - a, b, c'); readln(a, b, c); y:= Max(a,b,c)+Min(a,b,c); Writeln('Сумма максимальноего и минимального чисел = ', y); end. Процедуры Привести дробь вида a/b к несократимому виду. {Привести дробь вида a/b к несократимому виду.} Program Sokr_drobi_3v; uses CRT; var a, b, c, d: integer; {Процедура сокращения дроби} procedure SOKR(x,y: integer; var m,n: integer); var NOD: integer;{NOD - Наибольший общий делитель} begin If (x < y) Then NOD := x Else NOD := y; While Not( (x mod NOD = 0) and (y mod NOD = 0) ) do NOD := NOD - 1; m:=x div NOD; n:=y div NOD; end; begin writeln('Введите числитель'); Readln(a); writeln('Введите знаменатель'); Readln(b); Writeln; write(a,'/',b,' = '); SOKR(a,b,c,d); writeln (c, '/', d); end. Написать программу транспонирования матрицы. В основной про-грамме должны быть только вызовы процедур {Задание: Написать программу транспонирования матрицы. В основной программе должны быть только вызовы процедур.} Program TransMatrix; Uses CRT; Type Matrix = array [1..10, 1..10] of integer; Var A: matrix; z: integer; {Процедура ввода элементов матрицы} {Параметры: z - размер, А - матрица} Procedure Vvod (z: integer; Var A: matrix); Var i, j: integer; Begin {Vvod} For i:= 1 to z do For j:= 1 to z do Begin {Ввод элементов} Write ('[',i,',',j,']='); Read (A [i, j]); End; {Ввод элементов} Writeln; For i:= 1 to z do Begin {Вывод элементов} For j:= 1 to z do Write (A [i,j]:5); Writeln; End {Вывод элементов} End; {Vvod} {Процедура вывода элементов матриц} {Параметры: А - матрица, z - размер} Procedure Vyvod (z: integer; A: matrix); Var i, j:byte; Begin {Vyvod} For i:= 1 to z do Begin For j:= 1 to z do Write (A [i,j]:5); Writeln; End End; {Vyvod} {Процедура транспонирования матрицы} {Переменные: А - начальный массив, В - массив результат} Procedure Tran (A: matrix; z: integer; Var B: matrix); Var i, j: integer; Begin {Tran} For i:= 1 to z do For j:= 1 to z do B [i, j]:= A [j, i] End; {Tran} Begin Writeln ('Введите размер матрицы (A): '); Read (z); Writeln; Writeln ('Введите ', z*z, ' элемента(ов) матрицы: '); Writeln ('Матрица A: '); Vvod (z, A); {Процедура ввода элементов массива} Writeln; Writeln ('Результат транспонирования матрицы (А): '); Tran (A, z, A); {Процедура транспонирования матрицы} Vyvod (z, A); {Процедура вывода элементов матрицы} End. Массивы Заменить все четные элементы массива на их квадраты, а нечетные удвоить. {Заменить все четные элементы массива на их квадраты, а нечетные удвоить.} program chet_massiv; uses crt; const n=9; type arr=array[0..n] of integer; var i:byte; a:arr; begin writeln('Введите 10 элементов массива'); for i:=0 to n do begin write('A[',i,']= '); readln(a[i]); end; for i:=0 to n do if not odd(a[i]) {Проверка на четность элемента массива} then a[i] := a[i]*a[i] {Если четное, то возводится в квадрат} else a[i]:=a[i]*2; {Иначе умножается на 2} writeln('Вывод на экран новых значений массива'); for i:=0 to n do writeln('A[',i,']= ',a[i]);{Вывод на экран новых значений массива} end. Последний раз редактировалось DarkAn; 02.11.2008 в 16:24. Причина: Дополнение |
![]() |
![]() |
![]() |
#2 | ||
Форумчанин
Регистрация: 17.02.2008
Сообщений: 191
|
![]() Цитата:
Цитата:
задачи, которые у тебя сделаны работают провильно. З.Ы. на будущие: оформляй код тегом [CODЕ][/CODE]
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Последний раз редактировалось Cannibal; 02.11.2008 в 18:13. |
||
![]() |
![]() |
![]() |
#3 | ||
Регистрация: 02.11.2008
Сообщений: 5
|
![]() Цитата:
Код:
Цитата:
По программе пока соображений нет. Моск кипит. |
||
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 17.02.2008
Сообщений: 191
|
![]() Код:
С векторами так: Вводишь координаты начала (х1;у1) и конца (х2;у2) первого вектора и начала (х3;у3) и конца (х4;у4) второго вектора и делаешь условие нарисованное во вложении
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 02.11.2008
Сообщений: 5
|
![]()
Я, всё-таки, пошёл своим путём, без True и False.
Код:
Код:
Код:
Всё. Теперь берусь за вектора. |
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]() Цитата:
Цитата:
Следовательно, если (х2-х1=х4-х3)and(y2-y1=y4-y3)then RAVNY. Только не по абсолютной величине, а то теряем направленность. |
||
![]() |
![]() |
![]() |
#7 |
Регистрация: 02.11.2008
Сообщений: 5
|
![]()
Благодарю за помощь!
Вот что получилось: Код:
Последний раз редактировалось DarkAn; 03.11.2008 в 15:13. Причина: Корректировка |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#9 | |
Регистрация: 02.11.2008
Сообщений: 5
|
![]() Цитата:
Код:
Код:
С типами я ещё не знаком, точнее плохо знаком. Лучше воздержусь. Благодарю за помощь и поддержку! |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите пожалуйстьа решить несколько задач в Паскале (МАССИВЫ) | VisTBacK | Помощь студентам | 20 | 20.02.2009 08:32 |
[C++] Несколько задач | Алиса111 | Помощь студентам | 1 | 15.01.2008 03:52 |
writeln (помогите решить несколько задач!) | Evgenii | Помощь студентам | 2 | 04.01.2008 23:51 |
Несколько задач | Wilda | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 05.12.2007 19:03 |
Пожалуйста помогите исправить несколько задач | Shatyn | Помощь студентам | 5 | 25.06.2007 20:20 |