Контрольная работа по "Технологии програмирования"
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
КАМСКАЯ
ГОСУДАРСТВЕННАЯ ИНЖЕНЕРНО-ЭКОНОМИЧЕСКАЯ
АКАДЕМИЯ
Кафедра
«Сервис транспортных систем»
КОНТРОЛЬНАЯ РАБОТА
По дисциплине
«Технологии программирования»
Вариант
5
Набережные
Челны
2011 год.
1. ЛИНЕЙНЫЕ АЛГОРИТМЫ
Описание задачи
z1:=1-1/4sin22a+cos2a
z2:=cos2a+cos4a
Алгоритм решения задачи
Рис.1.1. Блок-схема алгоритма решения задачи
Реализация в Turbo Pascal
Program kontrolnaya;
Var z1, z2, a: Double;
begin
WriteLn('enter a');
ReadLn(a);
z1:=1-(1/4)*sqr(sin(2*a))+cos(
z2:=sqr(cos(a))+sqr(sqr(cos(a)
WriteLn('z1= ',z1,' z2= ',z2);
ReadLn;
End.
Результаты выполнения программы
2. АЛГОРИТМЫ С РАЗВЕТВЛЕНИЯМИ
Описание задачи
, x- нечетное, a > 0
e= , y- четное, a < 0
|axy|, во всех остальных случаях
Алгоритм решения задачи
Реализация в Turbo Pascal
Program kontr2;
Var e,a: Double;
x,y:Integer;
begin
WriteLn('enter x, y, a ');
ReadLn(x, y, a);
If x mod 2<>0 then e:=y*exp(Ln(x)/a)
else if y mod 2=0 then e:=(a*x/2)*exp(Ln(y)/(-a))
else e:=abs(a*x*y);
WriteLn('e= ', e);
ReadLn;
End.
Результаты выполнения программы
3. АЛГОРИТМЫ С ЦИКЛАМИ
Описание задачи
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от x1 до x2 с шагом dx с точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Алгоритм решения задачи
Реализация в Turbo Pascal
const Maxlter=500;
var c,y,x,x1,x2,dx:Real;
n,eps: Integer;
done: boolean;
Begin
Writeln('vvedite interval [x1,x2], tochnost, u shag');
Readln(x1,x2,eps,dx);
done:=true;
x:=x1;
c:=x;
y:=c;
n:=1;
Writeln('_____________________
Writeln('| Argument | Znachenie | K-vo iter |');
Writeln('---------------------
While x<=x2 do
begin
c:=-c*sqr(x)/2/n/(2*n+1);
y:=y+c;
x:=x+dx;
inc(n);
Writeln('|', x:10:1,'|', y:10:eps,' | ',n ,'|');
Writeln('---------------------
If n<=Maxlter then continue;
done:=false;
Break;
End;
ReadLn;
End.
Результаты выполнения программы
4. ОДНОМЕРНЫЕ МАССИВЫ
Описание задачи
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
- максимальный элемент массива;
- сумму элементов массива, расположенных до последнего положительного элемента.
- сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.
Алгоритм решения задачи
Реализация
в Turbo Pascal
Program kontr4;
var
n,i,j: 1..1000;
a: array [1..1000] of integer;
b,c: array [1..1000] of integer;
max,sum,d,e: Integer;
Begin
repeat;
writeln('Введите число элементов n:');
readln(n);
until n>0;
writeln('введите элементы массива с первого по ',n,'-й');
max:= a[i];
for i:=1 to n do
begin
write(i,'-й: ');
readln(a[i]);
if a[i]>max then max:=a[i]
end;
i:=1;
while a[i]>0 do
for i:=1 to n do
begin
sum:=sum+a[
end;
writeLn(' max= ', max,'; sum= ',sum);
repeat;
writeln('введите интервал сжатия массива [a,b]');
readln(d,e);
Until (abs(d)<abs(e));
d:=abs(d);
e:=abs(e);
i:=1;
for i:=1 to n do
if (a[i]>=d) and (a[i]<=e) then write('0 ')
else write(a[i],' ');
readLn;
end.
Результаты выполнения программы
5. ДВУМЕРНЫЕ МАССИВЫ
Описание задачи
Дана целочисленная квадратная матрица. Определить:
1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов (оформить в виде функции);
2)
минимум среди сумм модулей
элементов диагоналей, параллельных
побочной диагонали матрицы (
Алгоритм решения задачи
Реализация в Turbo Pascal
Program z1;
uses crt;
const
n=3;
type
matr = array[1..n,1..n]
of integer;
var
i,j,ks1,ks2,min:integer;
a:matr;
summb:boolean;
procedure summd(m1:matr; var m:integer);
var i,j,k:integer;
s:array[1..n*2] of integer;
begin
k:=0;
for i:=1 to n do begin
for j:=1 to n do begin
s[j+k]:=s[j+k]+abs(a[i,j]);
end;
k:=k+1;
end;
m:=s[1];
for i:=1 to n*2-1 do
if s[i]<m then m:=s[i];
end;
function sum(j:integer):integer;
var i,s:integer;
begin
s:=0
for i:=1 to n do s:=s+a[i,j];
sum:=s;
end;
begin
clrscr;
writeLn('Введите элементы матрицы');
for i:=1 to n do
for j:=1 to n do
begin
writeln('');
readLn(a[i,j]);
GotoXY(j*8,i*2);
write(a[i,j]:3);
end;
writeln;
for j:=1 to n do begin
summb:=true;
for i:=1 to n do begin
if a[i,j]<0 then summb:=false;
end;
if summb then begin
writeln('сумма', Ј,’го столбца = ',sum(j);
ks1:=ks1+1;
end;
end;
if ks1=0 then writeln('Нет столбцов не содержащих отрицательных элементов');
summd(a,min);
writeln('Minimalnaya summa diagonalei paral gl diag: = ',min);
readkey;
end.
Результаты выполнения программы
6. СТРОКИ
Описание задачи
Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Найти количество слов, первый и последний символы которых совпадают.
Алгоритм решения задачи
Реализация
в Turbo Pascal
uses crt;
const rz=['_',':',';',',',' ','.','?','!'];
var s,s1:string;
i,k,n:byte;
f:boolean;
begin
clrscr;
writeln('Введите предложение');
readln(s);
n:=0;
i:=1;
while i<=length(s) do
if not(s[i] in rz)and ((i=1)or(s[i-1] in rz)) then
begin
k:=i;s1:='';
while not(s[k] in rz)and(k<=length(s))do
begin
s1:=s1+s[k];
k:=k+1;
end;
if s1[1]=s1[length(s1)] then n:=n+1;
i:=i+length(s1);
end;
else i:=i+1;
write('Кол-во слов с одинаковыми буквами вначале и на конце: ',n);
readln;
end.
Результаты выполнения программы
7. ФАЙЛЫ
Описание задачи
Дан файл вещественных чисел. Удалить из него все компоненты, принадлежащие отрезку [1,5].
Алгоритм решения задачи
Реализация в Turbo Pascal
uses crt;
const
fn='array.dat';
type t =file of real;
var
n,i:integer;
a: array [1..100] of real;
b:array[1..100] of real;
tf:t;
begin
clrscr;
filemode:=2;
Assign(tf,fn);
{$I-};
Reset(tf);
{$I+}
If IOResult<>0 then Rewrite(tf);
If FileSize(tf)=0 then
begin
Writeln('vvedite k-vo elementov');
readln(n);
Writeln('vvedite ',n,' elementov');
For i:=1 to n do
begin
write(i,'-й: ');
readln(a[i]);
if (a[i]<1) or (a[i]>5) then b[i]:=a[i];
write(tf,b[i]);
end;
end;
writeln;
writeln('<<prosmotr faila>>');
reset(tf);
repeat
read(tf,b[i]);
if b[i]<>0 then writeln(b[i]:3);
until eof(tf);
readln;
close(tf);
erase(tf);
end.
Результаты выполнения программы
8. ЗАПИСИ
Описание задачи
Расписание электричек хранится в виде файла записей. Каждая запись содержит название пункта назначения, пометки типа «СВ», «ПВ», «КСВ» и время отправления. Написать программу, выполняющую:
- ввод расписания с клавиатуры;
- вывод на экран информации о поездах типа «СВ», отходящих после введенного времени;
- вывод на экран информации о поездах типа «ПВ», отправляющихся в пункт назначения «Москва»;
Алгоритм решения задачи
Реализация
в Turbo Pascal
Uses Crt;
Const
found: Boolean=false;
Type
Info = record
P :String[10];
M : String[3];
T : String [5];
end;
Var
poezd: Info;
f: File of Info;
yn: string[1];
procedure Edit;
Var
f: File of Info;
poezd: Info;
n:integer;
i:1..100;
begin
clrscr;
assign(f,'poezd.dat');
reset(f);
Writeln('ckolko zapicei xotite vvecti?');
ReadLn(n);
Writeln('vvedite elementy!');
Write('vvodite postrochno: ');
For i:=1 to n do
begin
With poezd do
begin
Writeln('Vvedite punkt:');
Readln(P);
Writeln('Vvedite Metky(CB|PB|KCB):');
Readln(M);
Writeln('Vvedite vremya');
Readln(T);
writeln('|',P,'|',M,'|',T,'|') ;
End;
Write(f,poezd);
End;
End;
procedure FndCB;
Var
poezd: Info;
f: File of Info;
i:1..100;
z: String[5];
Begin
ClrScr;
Write('Vvedite vremya otpravleniya (dlya poezdov s metkoi CB)>>');
ReadLn(z);
Writeln('--------------------- ----------');
Writeln('| punkt | Metka|');
Writeln('--------------------- ----------');
assign(f,'poezd.dat');
reset(f);
seek(f,0);
While not Eof(f) do
begin
Read(f,poezd);
If (poezd.T>=z) and (poezd.M='CB') then
begin
found:=true;
WriteLn('|',(poezd.P):20,'|',( poezd.M):8,'|');
Writeln('--------------------- ----------');
End;
End;
If Not found then Writeln('Poezda net');
end;
procedure Msk;
Var
poezd: Info;
f: File of Info;
Begin
ClrScr;
Assign(f,'poezd.dat');
Reset(f);
seek(f,0);
While not Eof(f) do
begin
Read(f,poezd);
if (poezd.M='PB') and (poezd.P='Moskva') then
begin
found:=true;
Writeln('Raspisanie Poezdov');
Writeln('--------------------- ------------------');
WriteLn('| Punkt | Metka | Vremya |');
Writeln('--------------------- ------------------');
writeln('|',(poezd.P):20,'|',( poezd.M):7,'|',(poezd.T):8,'|' );
Writeln('--------------------- ------------------');
readln;
end;
end;
end;
Begin
ClrSCr;
Assign(f,'poezd.dat');
{$I-};
Reset(f);
{$I+}
If IOResult<>0 then Rewrite(f);
if FileSize(f)=0 then Edit;
FndCB;
Msk;
writeLn('yDa/\uTb 3anucu (Y/N)?');
readln(yn);
if (yn='y') or (yn='Y') then
begin
Rewrite(f);
Writeln('3anucu yDa/\eHbI.');
end;
Writeln('Ha}|{MuTe ENTER.');
ReadLn;
close(f);
end.
Результаты выполнения программы
Список использованных источников
1. Павловская Т. А. «Паскаль. Программирование на языке высокого уровня»: Практикум. - СПб.: Питер, 2007.- 317 с: ил.
2.
Зеленяк О.П. «Практикум
3. Шпак Ю.А. Программирование в Turbo Pascal. Переход к Delphi. – К: «МК-Пресс», 2006. – 16 с., ил.
4. Смирнов Ю.Н., Макарова И.В. Основы программирования на языке Turbo Pascal. Часть 1: Учебное пособие – Набережные Челны: Изд-во КамПИ, 2000, 40 с.
5. Смирнов Ю.Н., Макарова И.В., Исавнин А.Г. Основы программирования на языке Turbo Pascal. Часть 2: Учебное пособие – Набережные Челны: Изд-во КамПИ, 2000, 29 с.

- Контрольная работа по «Технологии программирования»
- Контрольная работа по «Технологии продаж туристских услуг»
- Контрольная работа по "Технологии продуктов общественного питания"
- Контрольная работа по "Технологии продуктов общественного питания"
- Контрольная работа по "Технологии продуктов питания"
- Контрольная работа по "Технологии продукции переработки растениеводства"
- Контрольная работа по «Технологии производства и переработки продукции животноводства»
- Контрольная работа по "Технологии питания"
- Контрольная работа по "Технологии питания"
- Контрольная работа по «Технологии почтовой связи»
- Контрольная работа по "Технологии пошива"
- Контрольная работа по "Технологии пошива одежды"
- Контрольная работа по «Технологии приготовления блюд белорусской кухни»
- Контрольная работа по "Технологии приготовления продукции общественного питания"