Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТиУвТС / контрольная по ОАИП вар №7.doc
Скачиваний:
17
Добавлен:
01.04.2014
Размер:
172.03 Кб
Скачать

Министерство образования республики Беларусь

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

Институт информационных технологий

Специальность ИТИУТС

Контрольная работа

По курсу Основы алгоритмизации и программирования

Вариант №7

Студент-заочник 1 курса

Группы № 082423

ФИО Слоущ Михаил Ильич

Адрес г. Минск ул Одинцова д.41 кв.97

Тел. +375-44-7786722

Минск, 2010

Задание №1.Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

7.

При x = 0.1722, y = 6.33, z = 3.2510-4   = –205.306

Исходник программы

program v7_z1;

uses crt;

var

x,y,z,a,b,c,d,res:real;

begin

clrscr;

x:=0.1722;

y:=6.33;

z:=3.25*(exp(-4*ln(10)));

a:=5*arctan(x);

b:=1/4*(Arctan(Sqrt(1-sqr(x))/x));

c:=x+3*abs(x-y)+sqr(x);

d:=abs(x-y)*z+sqr(x);

res:=a-b*(c/d);

writeln('result:=',res:6:3);

readkey;

end.

Результат работы программы:

Задание №2. Составить программу для вычисления значения rez в зависимости от поставленного условия.

7. rez =

Исходник программы

program v7_z2;

uses crt;

var e,r,m,a,b,rez:real;

k:integer;

begin

clrscr;

k:=0;

writeln('vvedite znachenie e');

readln(e);

writeln('vvedite znachenie r');

readln(r);

writeln('vvedite znachenie m');

readln(m);

writeln;

if (m>=r) and (m<2*r) then begin

k:=1;

a:=sqrt(abs(3*m-5*r));

b:=exp(r/m*ln(e));

rez:=a*b;

end;

if m>2*r then begin

k:=2;

a:=sqrt(abs(3*m+5*r));

b:=exp(r/m*ln(e));

rez:=a*b;

end;

case k of

0:writeln('znachenie "m" ne podoshlo ni pod odno uslovie');

1:begin

writeln('bila vibrana pervaya vetv');

writeln('rezultat=',rez:8:4);

end;

2:Begin

writeln('bila vibrana vtoraya vetv');

writeln('rezultat=',rez:8:4);

end;

end;

end.

Результат работы программы:

Задание №3

Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.

Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.

7. , .

Исходник программы

program v7_z3;

uses crt;

const n=7;

Var a,b,h,X,s,y,p,q:real;

k:integer;

begin

clrscr;

s:=0;

y:=0;

write('na4alnoe zna4enie=');

readln(a);

write('kone4noe zna4enie=');

readln(b);

write('shag=');

readln(h);

x:=a;

writeln('---------------------------------------------------------');

writeln('resultat:');

while x<=b do begin

s:=0;

for k:=1 to n do begin

p:=exp(k*ln(x))*cos(k*3.14/3);

s:=s+p;

end;

p:=-1*(1/2);

q:=ln(1-2*x*cos(3.14/3)+sqr(x));

y:=p*q;

write('x=',x:3:2,' s(X)=',s:4:2,' y(x)=',y:4:2);

writeln;

x:=x+h;

end;

end.

Результат работы программы:

Задание №4

  1. Сумму элементов массива, расположенных до минимального элемента.

Исходник программы

program z4_v7;

uses crt;

var a:array[1..50] of integer;

i,n,k,s,min:integer;

begin

s:=0;

clrscr;

writeln('vvedite razmernost massiva (ne bolshe 20)');

readln(n);

if n>20 then

repeat

writeln('ne bolshe 20!!');

readln(n);

until n<=20;

writeln('vvedite elementy massiva');

for i:=1 to n do

read(a[i]);

min:=a[1];

for i:=2 to n do

if a[i]<min then begin

min:=a[i];

k:=i;

end;

for i:=1 to n do

if i<>k then s:=s+a[i]

else break;

writeln('summ do min elementa= ',s);

end.

Результат работы программы:

Задание №5

В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.

7. Найти количество отрицательных и положительных элементов массива.

Исходник программы

program v7_z5;

uses crt;

type

atype = array[-50..50,-50..50] of integer;

var

i,n,m,j,p,o: integer;

a:^atype;

begin

p:=0;

o:=0;

clrscr;

writeln('stroki');

readln(n);

writeln('stolbzzy');

readln(m);

getmem(a,n*m*sizeof(integer));

writeln('elementy');

for i:=1 to n do

for j:=1 to m do begin

read(a^[i,j]);

if a^[i,j]>=0 then inc(p)

else inc(o);

end;

writeln('kol-vo poloshitelnih=',p);

writeln('kol-vo otrizzatelnyh=',o);

freemem(a);

end.

Результат работы программы:

Задание №6

Написать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых данных или редактирование старых), «Решение индивидуального задания».

Каждая запись должна содержать следующую информацию о студентах:

– фамилия и инициалы;

– год рождения;

– номер группы;

– оценки за семестр: по физике, математике, информатике, химии;

– средний балл.

Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.

Содержимое всего файла и результаты решения индивидувльного задания записать в текстовый файл.

7. Распечатать анкетные данные студентов, не имеющих оценок меньше 4 по информатике и математике.

Исходник программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls, jpeg, ExtCtrls;

type

TForm1 = class(TForm)

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button5: TButton;

Label6: TLabel;

Edit5: TEdit;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Label3: TLabel;

Button4: TButton;

Label4: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Type

TStudent = record

FIO: string[40];

matem,fiz,inf,him:integer;

gr,god: integer;

sball : extended; // Поле среднего балла

end;

Var

Fz : file of Tstudent; // Файл типа запись

Ft : TextFile; // Текстовой файл

Stud : array[1..100] of Tstudent; // Массив записей

i,nzap : integer; // Номер записи

FileNameZ, FileNameT : string; // Имя файла

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='';

Edit2.Text:='';

Memo1.Clear;

Button1.Hide; // Сделать невидимой кнопку "Ввести запись"

nzap:=0;

end;

procedure TForm1.Button1Click(Sender: TObject); //ввести новую запись

begin

if edit1.Text='' then begin

showmessage('Выне ввели ученика');

exit;

end;

nzap:=nzap+1;

with stud[nzap] do begin

FIO:=Edit1.Text;

gr:=strtoint(Edit2.Text);

god:=strtoint(edit5.Text);

fiz:=strtoint(edit6.Text);

matem:=strtoint(edit7.Text);

inf:=strtoint(edit8.Text);

him:=strtoint(edit9.Text);

sball:=(matem+inf+him+fiz)/4;

Memo1.Lines.Add(fio+' год рожд:'+inttostr(god)+' гр№ '+inttostr(gr)+' физика:'+inttostr(fiz)+' матем:'+inttostr(matem)+' химия:'+inttostr(him)+' информ:'+inttostr(inf)+' ср.балл '+floattostr(sball));

end;

Write(fz,Stud[nzap]); // Запись в файл

Edit1.Text:='';

Edit2.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='';

end;

procedure TForm1.Button2Click(Sender: TObject); //создание нового файла

begin

OpenDialog1.Title :='Создать новый файл'; // Изменение заголовка окна диалога

if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла

begin

label4.Caption:='Содержимое файла';

FileNameZ:= OpenDialog1.FileName; // Возвращение имени дискового файла

AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла

Rewrite(Fz); // Создание нового файла

end;

Button1.Show; // Сделать видимой кнопку "Ввести запись"

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла

label4.Caption:='Содержимое файла';

button1.caption:='Добавить запись';

begin

FileNameZ:= OpenDialog1.FileName; // Возвращение имени дискового файла

AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла

Reset(Fz); // Открытие существующего файла

end;

while not eof(fz) do begin

nzap:=nzap+1;

Read(fz,stud[nzap]); // Чтение записи из файла

with stud[nzap] do begin

Memo1.Lines.Add(fio+' гр.'+inttostr(gr)+' ср.балл '+floatToStr(sball));

Memo1.Lines.Add(' ');

end;

end;

Button1.Show; // Сделать видимой кнопку "Ввести запись"

end;

procedure TForm1.Button5Click(Sender: TObject);

var i:word;

begin

if SaveDialog1.Execute then // Выполнение стандартного диалога выбора имени файла

begin

FileNameT:= SaveDialog1.FileName; // Возвращение имени дискового файла

AssignFile(Ft, FileNameT); // Связывание файловой переменной Ft c именем файла

Rewrite(Ft); // Открытие нового текстового файла

end;

writeln(ft,' ');

for i:=1 to nzap do

with stud[i] do begin Writeln(Ft,i:4,'. ',fio,gr,god,fiz,matem,inf,him,sball:8:2); // Запись в текстовой файл

Writeln(ft,' ');

end;

CloseFile(Ft); // Закрытие текстового файла

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

form1.close;

// Закрытие файла записей при нажатии на кнопку "Сlose"

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

for i:=1 to nzap do

with stud[i] do begin

if (matem>=4)and (inf>=4) then

Memo1.Lines.Add(fio+' год рожд:'+inttostr(god)+' гр№ '+inttostr(gr)+' физика:'+inttostr(fiz)+' матем:'+inttostr(matem)+' химия:'+inttostr(him)+' информ:'+inttostr(inf)+' ср.балл '+floattostr(sball));

end;

end;

end.

Результат работы программы: