Другие языки программирования и технологии
помогите решить задачи по программированию в ПАСКАЛЕ!!!
1.Задан одномерный массив чисел. Отсортировать его элементы по убыванию наиболее эффективным способом. 2.Написать программу, которая, идя по числовой оси на промежутке от А до В включая с шагом 2, будет искать точку, в которой значение функции у=син^2(х) будет максимальным. Значения А и В вводит пользователь. 3.Задан треугольник координатами своих вершин. Определить лежит ли указанная пользователем точка внутри этого треугольника. 4.Пользователь вводит предложение. Вывести введенное предложение закодированное с помощью шифра цезаря виде.
Для первой задачи:
const Size = 100;
type AType = Integer;
var A : array [1..Size] of AType;
procedure Swap(var A, B : AType);
var Tmp : AType;
begin
Tmp := A; A := B; B := Tmp;
end;
procedure QuickSort(L, R : Integer);
var
i, j : Integer;
X : AType;
begin
i := L; j := R;
X := A[(L + R) div 2];
repeat
while A[ i] > X do Inc(i);
while A[j] < X do Dec(j);
if i <= j then
begin
if A[ i] < A[j] then
Swap(A[ i], A[j]);
Inc(i);
Dec(j);
end;
until i >= j;
if L < j then QuickSort(L, j);
if i < R then QuickSort(i, R);
end;
var SizeArray, N : Byte;
begin
Write('Размер массива до 100 : '); ReadLn(SizeArray);
for N := 1 to SizeArray do begin Write('A[', N, '] = '); ReadLn(A[N]) end;
QuickSort(1, SizeArray);
WriteLn('Отсортированный массив: '); for N := 1 to SizeArray do Write(#32, A[N]); WriteLn;
end.
Вторая:
var A, B, N : Integer; Max : Real;
begin
Write('A = '); ReadLn(A);
Write('B = '); ReadLn(B);
if A > B then begin WriteLn('Ошибка! A должно быть меньше B.'); Halt; end;
N := A; Max := Sin(N)*Sin(N);
repeat if Max < Sin(N)*Sin(N) then Max := Sin(N)*Sin(N); Inc(N, 2); until N > B;
WriteLn(Max :0:3);
end.
Третья:
var AX, BX, CX, PX, AY, BY, CY, PY, ab, ac, ap, bc, bp, cp, Sabc, Sabp, Sacp, Sbcp, dS : Real;
begin
Write('AX = '); ReadLn(AX); Write('AY = '); ReadLn(AY);
Write('BX = '); ReadLn(BX); Write('BY = '); ReadLn(BY);
Write('CX = '); ReadLn(CX); Write('CY = '); ReadLn(CY);
Write('PX = '); ReadLn(PX); Write('PY = '); ReadLn(PY);
ab := Sqrt((AX-BX)*(AX-BX)+(AY-BY)*(AY-BY));
ac := Sqrt((AX-CX)*(AX-CX)+(AY-CY)*(AY-CY));
ap := Sqrt((AX-PX)*(AX-PX)+(AY-PY)*(AY-PY));
bc := Sqrt((BX-CX)*(BX-CX)+(BY-CY)*(BY-CY));
bp := Sqrt((BX-PX)*(BX-PX)+(BY-PY)*(BY-PY));
cp := Sqrt((CX-PX)*(CX-PX)+(CY-PY)*(CY-PY));
Sabc := Sqrt((ab+bc+ac)*(-ab+bc+ac)*(ab-bc+ac)*(ab+bc-ac)) / 4;
Sabp := Sqrt((ab+bp+ap)*(-ab+bp+ap)*(ab-bp+ap)*(ab+bp-ap)) / 4;
Sacp := Sqrt((ac+cp+ap)*(-ac+cp+ap)*(ac-cp+ap)*(ac+cp-ap)) / 4;
Sbcp := Sqrt((bc+cp+bp)*(-bc+cp+bp)*(bc-cp+bp)*(bc+cp-bp)) / 4;
dS := Abs(Sabc - Sabp - Sacp - Sbcp);
WriteLn('Заданная точка принадлежит треугольнику = ', dS <= 0.00001);
end.
Четвёртая:
const C = '0123456789' +
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
'abcdefghijklmnopqrstuvwxyz' +
'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ' +
'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
var S : String; K, N, P : Word;
begin
Write('Фраза = '); ReadLn(S);
Write('Ключ = '); ReadLn(K);
for N := 1 to Length(S) do begin
P := Pos(S[N], C);
if P > 0 then begin P := P + K; while P > Length(C) do P := P - Length(C); S[N] := C[P]; end;
end;
WriteLn('Зашифрованная фраза: ', S);
end.
const Size = 100;
type AType = Integer;
var A : array [1..Size] of AType;
procedure Swap(var A, B : AType);
var Tmp : AType;
begin
Tmp := A; A := B; B := Tmp;
end;
procedure QuickSort(L, R : Integer);
var
i, j : Integer;
X : AType;
begin
i := L; j := R;
X := A[(L + R) div 2];
repeat
while A[ i] > X do Inc(i);
while A[j] < X do Dec(j);
if i <= j then
begin
if A[ i] < A[j] then
Swap(A[ i], A[j]);
Inc(i);
Dec(j);
end;
until i >= j;
if L < j then QuickSort(L, j);
if i < R then QuickSort(i, R);
end;
var SizeArray, N : Byte;
begin
Write('Размер массива до 100 : '); ReadLn(SizeArray);
for N := 1 to SizeArray do begin Write('A[', N, '] = '); ReadLn(A[N]) end;
QuickSort(1, SizeArray);
WriteLn('Отсортированный массив: '); for N := 1 to SizeArray do Write(#32, A[N]); WriteLn;
end.
Вторая:
var A, B, N : Integer; Max : Real;
begin
Write('A = '); ReadLn(A);
Write('B = '); ReadLn(B);
if A > B then begin WriteLn('Ошибка! A должно быть меньше B.'); Halt; end;
N := A; Max := Sin(N)*Sin(N);
repeat if Max < Sin(N)*Sin(N) then Max := Sin(N)*Sin(N); Inc(N, 2); until N > B;
WriteLn(Max :0:3);
end.
Третья:
var AX, BX, CX, PX, AY, BY, CY, PY, ab, ac, ap, bc, bp, cp, Sabc, Sabp, Sacp, Sbcp, dS : Real;
begin
Write('AX = '); ReadLn(AX); Write('AY = '); ReadLn(AY);
Write('BX = '); ReadLn(BX); Write('BY = '); ReadLn(BY);
Write('CX = '); ReadLn(CX); Write('CY = '); ReadLn(CY);
Write('PX = '); ReadLn(PX); Write('PY = '); ReadLn(PY);
ab := Sqrt((AX-BX)*(AX-BX)+(AY-BY)*(AY-BY));
ac := Sqrt((AX-CX)*(AX-CX)+(AY-CY)*(AY-CY));
ap := Sqrt((AX-PX)*(AX-PX)+(AY-PY)*(AY-PY));
bc := Sqrt((BX-CX)*(BX-CX)+(BY-CY)*(BY-CY));
bp := Sqrt((BX-PX)*(BX-PX)+(BY-PY)*(BY-PY));
cp := Sqrt((CX-PX)*(CX-PX)+(CY-PY)*(CY-PY));
Sabc := Sqrt((ab+bc+ac)*(-ab+bc+ac)*(ab-bc+ac)*(ab+bc-ac)) / 4;
Sabp := Sqrt((ab+bp+ap)*(-ab+bp+ap)*(ab-bp+ap)*(ab+bp-ap)) / 4;
Sacp := Sqrt((ac+cp+ap)*(-ac+cp+ap)*(ac-cp+ap)*(ac+cp-ap)) / 4;
Sbcp := Sqrt((bc+cp+bp)*(-bc+cp+bp)*(bc-cp+bp)*(bc+cp-bp)) / 4;
dS := Abs(Sabc - Sabp - Sacp - Sbcp);
WriteLn('Заданная точка принадлежит треугольнику = ', dS <= 0.00001);
end.
Четвёртая:
const C = '0123456789' +
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
'abcdefghijklmnopqrstuvwxyz' +
'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ' +
'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
var S : String; K, N, P : Word;
begin
Write('Фраза = '); ReadLn(S);
Write('Ключ = '); ReadLn(K);
for N := 1 to Length(S) do begin
P := Pos(S[N], C);
if P > 0 then begin P := P + K; while P > Length(C) do P := P - Length(C); S[N] := C[P]; end;
end;
WriteLn('Зашифрованная фраза: ', S);
end.
Похожие вопросы
- Помогите решить) Задачи по программированию в Паскале
- Помогите решить задачу по Программированию в паскале.
- Помогите решить задачу на программирование!
- помогите решить задачу по программированию
- Помогите решить задачку по программированию в Паскале!
- помогите решить задачу с помощью турбо паскаля: Вывести все шестизначные «счастливые номера». Сколько их всего?
- Помогите решить задачи по программированию!!!
- Помогите решить задачу по программированию! Язык - Visual Basic.
- Помогите решить задачу по программированию. Дано четырёхзначное число. Найти: а) сумму его цифр; б) произведение его циф
- Помогите решить задачу по программированию, пожалуйста. Найти сумму наименьших значений элементов строк. (вложенные циклы)