
Министерство образования республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Институт информационных технологий
Специальность ИТИУТС
Контрольная работа
По курсу Основы алгоритмизации и программирования
Вариант №7
Студент-заочник 1 курса
Группы № 082423
ФИО Слоущ Михаил Ильич
Адрес г. Минск ул Одинцова д.41 кв.97
Тел. +375-44-7786722
Минск, 2010
Задание №1.Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
7.
|
При x = 0.1722, y = 6.33, z = 3.2510-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
-
Сумму элементов массива, расположенных до минимального элемента.
Исходник программы
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.
Результат работы программы: