Программа
program KURSOVIK;
uses crt;
var xy : array[1..3,1..25] of real;
xbeg,xend,dx,x,y : real;
a,b,c,xmin,xmax,ymin,ymax,xcr,ycr : real;
i,j,n,i1,k,l : integer;
ch : char;
lm : word;
const m:array[1..5] of integer=(2330,1470,1470,2330,2330);
t:array[1..12] of integer=(1470,1470,2330,2330,1470,1560,1470,1310,1310,1310,2200,2200);
w:array[1..12] of integer=(1310,1310,2200,2200,1310,1470,1310,1160,1160,1160,1960,1960);
g:array[1..16] of integer=(1160,1160,1960,1960,1160,1310,1160,1160,1160,1160,1850,1850,1960,2200,1560,1470);
yy:array[1..16] of integer=(1160,1160,1960,1960,1160,1310,1160,1160,1160,1160,1850,1850,1960,2200,1850,2470);
vc=6; vb=8; vg=11;
procedure titul;
begin clrscr;
textcolor(vc);
gotoxy(18,2);
writeln('МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ');
gotoxy(15,4);
writeln('САНКТ-ПЕТЕРБУРГСКИЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ ИНСТИТУТ');
gotoxy(20,6);
writeln('КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ');
gotoxy(19,10);
writeln('ЛАБОРАТОРНЫЕ РАБОТЫ ПО ДИСЦИПЛИНЕ " ИНФОРМАТИКА ":');
gotoxy(25,12);
writeln(' ПОЛЬЗОВАТЕЛЬСКИЙ ПАКЕТ ПРОГРАММ');
gotoxy(12,16);
writeln('РАЗРАБОТАЛ: Николенко Е.А.');
gotoxy(12,18);
writeln('ПРОВЕРИЛ: БУКУНОВА О.В.');
gotoxy(12,20);
writeln('ПРЕДПОЛАГАЕМАЯ ОЦЕНКА: " УЖАСНО "');
gotoxy(30,22);
writeln('ВАРИАНТ N ');
gotoxy(25,24);
writeln('САНКТ-ПЕТЕРБУРГ 1999 г.');
readln;
end;
procedure oglav;
begin clrscr;
gotoxy(28,2);
textcolor(vg);
writeln(' С О Д Е Р Ж А Н И Е ');
gotoxy(20,4);
writeln('Разветвляющаяся функция.......................1');
gotoxy(20,6);
writeln('Программирование циклических процессов........2');
gotoxy(20,8);
writeln('Табулирование функций.........................3');
gotoxy(20,10);
writeln('Суммирование бесконечных рядов................4');
gotoxy(20,12);
writeln('Работа с одномерными массивами................5');
gotoxy(20,14);
writeln('Работа с двумерными массивами.................6');
gotoxy(20,16);
gotoxy(20,18);
writeln('Выход.........................................0');
gotoxy(20,20);
writeln('Введите номер выбранной вами работы');
end;
Procedure Lab4;
const x0=0; dx=0.1; n=15; e=1E-5;
var s,x,y,a:real; i,k:integer;
begin clrscr;
x:=x0;
writeln (' Николенко Евгений');
writeln (' Группа 1-АХ-I');
writeln (' ');
writeln (' Лабораторная работа # 4');
writeln (' Вариант # 16');
writeln ('┌──┬──────────┬───────────────┬───────────────┐');
writeln ('│I │ X │ Сумма │ Y │');
writeln ('├──┼──────────┼───────────────┼───────────────┤');
for k:=1 to n do
begin
s:=0;
a:=1;
i:=0;
while abs(a)>e do
begin s:=s+a;
a:=a*1.8*x/(i+1);
i:=i+1;
end;
y:=exp(1.8*x);
writeln ('│',k:2,'│',x:10:2,'│',s:15:5,'│',y:15:5,'│');
x:=x+dx;
end;
writeln ('└──┴──────────┴───────────────┴───────────────┘');
readln;
end;
PROCEDURE Lab1;
Var Ch:char; { Буфер для сброса символа нажатой клавиши }
X,Step:real; { Точка и шаг табулирования }
QuantityStep:integer; { Количество шагов табулирования }
i:integer; { Счетчик }
Begin
ClrScr; { Очистка экрана }
Write('Введите начальную точку табулирования '); { Вывод приглашения }
ReadLn(X); { Ввод значения }
Write('Введите шаг табулирования '); { Вывод приглашения }
ReadLn(Step); { Ввод значения }
Write('Введите количество шагов табулирования '); { Вывод приглашения }
ReadLn(QuantityStep); { Ввод значения }
WriteLn; { Пропуск строки }
for i:=0 to QuantityStep do { Цикл табулирования функции }
begin
if X<0.5 { Сравнение аргумента с граничным значением }
then WriteLn('y(',X:0:2,')=',Cos(X):0:5) { Вычисление и вывод значения функции }
else WriteLn('y(',X:0:2,')=',Cos(X):0:5);{ Вычисление и вывод значения функции }
X:=X+Step { Пересчет аргумента }
end;
WriteLn; { Пропуск строки }
WriteLn('Нажмите клавишу'); { Вывод приглашения }
Ch:=ReadKey { Ожидание нажатия клавиши }
End;
PROCEDURE Lab2;
Var Ch:char; { Буфер для сброса символа нажатой клавиши }
Y,X:real; { Значение и аргумент }
i:integer; { Счетчик }
Begin
ClrScr; { Очистка экрана }
Y:=1; { Сброс результата }
for i:=1 to 6 do { Цикл набора произведения }
begin
Write('Введите X',i:0,' '); { Вывод приглашения }
ReadLn(X); { Ввод аргумента }
Y:=Y*Sqr(2*Sin(X)+1) { Набор произведения }
end;
WriteLn; { Пропуск строки }
WriteLn('y=',Y); { Вывод произведения }
WriteLn; { Пропуск строки }
WriteLn('Нажмите клавишу'); { Вывод приглашения }
Ch:=ReadKey { Ожидание нажатия клавиши }
End;
PROCEDURE Lab3;
Const { Параметры функции: }
a=0.1;
b=0.6;
d=1.65;
Var Ch:char; { Буфер для сброса символа нажатой клавиши }
xStart,xFinish,X:real; { Начальное, конечное, и промежуточное значения аргумента }
Step:real; { Шаг изменения аргумента }
i:integer; { Счетчик }
Begin
ClrScr; { Очистка экрана }
Write('Введите начальное и конечное изменения аргумента '); { Вывод приглашения }
ReadLn(xStart,xFinish); { Ввод интервала }
Write('Введите шаг изменения аргумента '); { Вывод приглашения }
ReadLn(Step); { Ввод шага }
WriteLn; { Пропуск строки }
i:=0; { Сброс счетчика }
while X<xFinish do { Цикл вычисления значений функции }
begin
X:=xStart+i*Step; { Определение аргумента }
{ Проверка принадлежности аргумента заданным условиям,
вычисление и вывод значения функции: }
if X<a
then WriteLn('y(',X:0:1,')=',Pi*Sqr(X)-7*Sqrt(Abs(X)))
else if X<=b
then WriteLn('y(',X:0:1,')=',d*Sqr(X)+7/X)
else WriteLn('y(',X:0:1,')=',Ln(Pi*Sqr(X)));
i:=i+1 { Переопределение счетчика }
end;
WriteLn; { Пропуск строки }
WriteLn('Нажмите клавишу'); { Вывод приглашения }
Ch:=ReadKey { Ожидание нажатия клавиши }
End;
CONST QuantityElement=15; { Количество элементов вектора }
TYPE VectorType=array [1..QuantityElement] of integer; { Вектор-тип }
PROCEDURE InputVector (var B:VectorType); { Процедура ввода вектора }
Var i:word; { Счетчик }
Begin
for i:=1 to QuantityElement do { Цикл ввода элементов вектора }
begin
Write('Введите элемент [',i,'] ');
{ Вывод приглашения ввести элемент вектора }
ReadLn(B[i]) { Ввод элемента вектора }
end
End;
PROCEDURE OutputVector (B:VectorType); { Процедура вывода вектора }
Var i:word; { Счетчик }
Begin
for i:=1 to QuantityElement do { Цикл вывода вектора }
Write (B[i],' '); { Вывод элемента вектора }
WriteLn { Вывод конца строки }
End;
PROCEDURE ProcessVector (B:VectorType;var Mult,Sum:real); { Процедура просмотра вектора }
Var i:word; { Счетчик }
ZeroFlag:boolean; { Флаг прохождения через нулевой элемент }
Begin
ZeroFlag:=FALSE; { Сброс флага }
Mult:=1; { Сброс произведения }
Sum:=0; { Сброс суммы }
for i:=1 to QuantityElement do { Цикл просмотра вектора }
if ZeroFlag { Проверка флага }
then Sum:=Sum+B[i] { Набор суммы }
else if B[i]=0 { Проверка условия подъема флага }
then ZeroFlag:=TRUE { Подъем флага }
else Mult:=Mult*B[i] { Набор произведения }
End;
PROCEDURE Lab5;
Var Ch:char; { Буфер для сброса символа нажатой клавиши }
A:VectorType; { Массив }
Mult,Sum:real; { Произведение и сумма элементов }
Begin
ClrScr; { Очистка экрана }
InputVector(A); { Ввод массива }
ProcessVector(A,Mult,Sum); { Обработка вектора }
WriteLn; { Пропуск строки }
WriteLn('Массив:'); { Вывод заголовка }
OutPutVector(A); { Вывод вектора }
WriteLn('Произведение ',Mult); { Вывод произведения }
WriteLn('Сумма ',Sum); { Вывод суммы }
WriteLn; { Пропуск строки }
WriteLn('Нажмите клавишу'); { Вывод приглашения }
Ch:=ReadKey { Ожидание нажатия клавиши }
End;
CONST Power=8; { Размерность матрицы }
TYPE MatrixType=array [1..Power,1..Power] of integer; { Тип - матрица }
PROCEDURE InputMatrix (var B:MatrixType); { Процедура ввода матрицы }
Var i,j:word; { Счетчики }
Begin randomize;
for i:=1 to Power do { Цикл ввода строк матрицы }
for j:=1 to Power do { Цикл ввода элементов матрицы }
begin
Write('Введите элемент [',i,',',j,'] ');
{ Вывод приглашения ввести элемент матрицы }
ReadLn(B[i,j]) { Ввод элемента матрицы }
end
End;
PROCEDURE OutputMatrix (B:MatrixType); { Процедура вывода матрицы }
Var i,j:word; { Счетчики }
Begin
for i:=1 to Power do { Цикл вывода строк матрицы }
begin
for j:=1 to Power do { Цикл вывода элементов матрицы }
Write (B[i,j]:2,' '); { Вывод элемента матрицы }
WriteLn { Вывод конца строки }
end
End;
PROCEDURE ProcessMatrix (B:MatrixType;var Sum:real;var Quantity:integer;
var SumMod5:real); { Процедура просмотра матрицы }
Var i,j:word; { Счетчики }
Begin
{ Сброс переменных: }
Sum:=0;
Quantity:=0;
SumMod5:=0;
for i:=1 to Power do { Цикл просмотра строк }
for j:=Power-i+1 to Power do { Цикл просмотра элементов }
begin
if (B[i,j]<4)and(B[i,j]>-1) then Sum:=Sum+B[i,j]; { Набор суммы }
if B[i,j]>1 then Quantity:=Quantity+1; { Набор количества }
if Abs(B[i,j])<=5 then SumMod5:=SumMod5+B[i,j]; { Набор суммы }
end
End;
PROCEDURE Lab6;
Var Ch:char; { Буфер для сброса символа нажатой клавиши }
B:MatrixType; { Матрица }
Sum:real; { Сумма элементов <4 и >-1 }
Quantity:integer; { Количество элементов >1 }
SumMod5:real; { Сумма элементов <=5 и >=-5 }
Begin
ClrScr; { Очистка экрана }
InputMatrix(B); { Ввод массива }
ClrScr; { Очистка экрана }
WriteLn('Матрица:'); { Вывод заголовка }
OutputMatrix(B); { Вывод матрицы }
ProcessMatrix(B,Sum,Quantity,SumMod5); { Обработка матрицы }
WriteLn; { Пропуск строки }
{ Вывод результатов: }
WriteLn('Сумма элементов меньших 4 и больших -1: ',Sum);
WriteLn('Количество элементов больших 1: ',Quantity);
WriteLn('Сумма элементов, по модулю не превосходящих 5: ',SumMod5);
WriteLn; { Пропуск строки }
WriteLn('Нажмите клавишу'); { Вывод приглашения }
Ch:=ReadKey { Ожидание нажатия клавиши }
End;
{ГОЛОВНАЯ ПРОГРАММА}
begin
clrscr;
lm:=lastmode;
titul;
repeat
oglav;
gotoxy(65,19);
writeln('┌──┐');
gotoxy(65,20);
writeln('│ │');
gotoxy(65,21);
writeln('└──┘');
gotoxy(67,20);
readln(l);
case l of
1:begin lab1;textmode(lm); end;
2:begin lab2;textmode(lm); end;
3:begin lab3;textmode(lm); end;
4:begin lab4;textmode(lm); end;
5:begin lab5;textmode(lm); end;
6:begin lab6;textmode(lm); end;
end;
until l=0
end.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию