bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [58]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ТОБ / ЭСБ » Другое

Информатика
Подробности о скачивании 27.01.2013, 19:53
Задание 1
1. Переведите данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления. Получите три знака после запятой в двоичном представлении (см. Табл. 1).
2. Переведите данное число в десятичную систему счисления (см. Табл. 1).
3. Сложите числа. Проверьте правильность вычислений переводом исходных данных и результатов в десятичную систему счисления (см. Табл. 1).
4. Переведите числа из восьмеричной системы счисления в шестнадцатеричную (см. Табл. 1).
5. Переведите числа из шестнадцатеричной системы счисления в восьмеричную (см. Табл. 1).
6. Проверьте полученные результаты при помощи программы КАЛЬКУЛЯТОР (СТАНДАРТНЫЕ).
7. По результатам вычислений оформите отчет в ТП Word.

Переводим числа 777; 305; 153,25; 162,25; 248,46 из десятичной системы в двоичную систему счисления методом подбора:
1) 500=11111101002;
2) 675=10101000112;
3) 810,25=1100101010,012;
4) 1017,25=1111111001,012;
5) 123,72=1111011,1012.
Переводим число 777; 305; 153,25; 162,25; 248,46 из десятичной системы в восьмеричную систему счисления методом деления:
1) 500= 7648;
2) 675= 12438;
3) 810,25=1452,28;
4) 1017,25=1452,28;
5) 123,72=173,568.
Переводим число 777; 305; 153,25; 162,25; 248,46 из десятичной системы в шестнадцатеричную систему счисления методом путём деления:
1) 500=1F416;
2) 675=2A316;
3) 810,25=32A,416;
4) 1017,25=3F9,416;
5) 123,72=81, B8516.
Переводим числа 1101010001(2); 100011100(2); 1101110001,011011(2); 110011000,111001(2); 1347,17(8); 155,6C(16) в десятичную систему счисления путём разложения по степеням:
1) 1101010001(2)=1*29+1*28+0*27+1*26+0*25+1*24+0*23+0*22+0*21+ +1*20=849(10);
2) 100011100(2)= 1*28+0*27+0*26+0*25+1*24+1*23+1*22+0*21+ +0*20=284(10);
3) 1101110001,011011(2)=1*29+1*28+0*27+1*26+1*25+1*24+0*23+ +0*22+0*21+1*20+0*2-1+1*2-2+1*2-3+0*2-4+1*2-5+1*2-6= =881, 0,421875(10);
4) 110011000,111001(2)= 1*28+1*27+0*26+0*25+1*24+1*23+ +0*22+0*21+0*20+1*2-1+1*2-2+1*2-3+0*2-4+0*2-5+1*2-6= =408, 890625(10);
5) 1347,17(8)= 1*83+3*82+4*81+7*80+1*8-1+7*8-2=743,234375(10);
6) 155,6C(16)=1*162+5*161+5*160+6*16-1+C*16-2=341,109375(10).
Слаживаем числа и проверяем правильность сложения путём перевода в десятичную систему счисления:
1) 1000101101(2)+1100000010(2)= 10100101111(2)
Проверка 557+770=1327
• 1000101101(2)=557(10)
• 1100000010(2)=770(10)
• 10100101111(2)=1327(10)
2) 1111011010(2)+111001100(2)= 10110100110(2)
Проверка 986+460=1446
• 1111011010 (2)=986(10)
• 111001100(2)=460(10)
• 10110100110 (2)=1446(10)

3) 1001000011,1(2)+10001101,101(2)= 1011010001,001
Проверка 986+460=1446
• 1001000011,1(2)=579,5(10)
• 10001101,101(2)=141,625(10)
• 1011010001,001(2)=721,125(10)
4) 415,24(8)+1345,04(8)=1762,3(8)
Проверка 986+460=1446
• 415,24(8)=269,3125(10)
• 1345,04(8)=741,0625(10)
• 1762,3(8)=1010,375(10)
5) 113,B(16)+65,8(16)=179,3(16)
Проверка 986+460=1446
• 113,B(16)=275,6875(10)
• 65,8(16)=101,5(10)
• 179,3(16)=377,1875(10)
Перевести число 1017,2(8) из восьмеричной в шестнадцатеричную, для этого переводим число 1017,2(8) сначала в двоичную систему записав каждую цифру в восьмеричной системе как три цифры в двоичной системе (триада):
1017,2(8)=001 000 001 111 ,010;
после этого полученное двоичное число разбиваем на группы по четыре (тетрады):
0010 0000 1111, 0100;
и записав тетрады в шестнадцатеричном счислении получим шестнадцатеричное число:
20F,4(16)=1017,2(8).
Перевести число 334,A(16) из шестнадцатеричной в восьмертчную, для этого переводим число 334,A(16) сначала в двоичную систему записав каждую цифру в шестнадцатеричной системе как четыре цифры в двоичной системе (тетрада):
0011 0011 0100, 1010;
после этого полученное двоичное число разбиваем на группы по три (триады):
001 100 110 100, 101;
записываем полученные триада в восьмеричном счислении и получаем:
334,A(16)=1464,5(8).

ЗАДАНИЕ 2
Составить программу вычисления выражения согласно указанному преподавателем варианту.
Необходимо уточнить условие задания, количество, наименование, типы исходных данных. В соответствии с этим установить необходимое количество компонент TEdit, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов. С помощью инспектора объектов изменить цвет формы, шрифт выводимых символов.

1. Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, Math;
type
TForm1 = class(TForm)
Label2: TLabel;
Edit1: TEdit;
Memo1: TMemo;
Label5: TLabel;
Button1: TButton;
Edit3: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y,z,a: real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
z:=StrToFloat(Edit3.Text);
Memo1.Lines.Add('x='+floattostr(x));
Memo1.Lines.Add('y='+floattostr(y));
Memo1.Lines.Add('z='+floattostr(z));
a:=ln(power(y,-sqrt(abs(x))))*(x-y/2)+power(sin(arctan(z)),2);
Memo1.Lines.Add('a='+FloatToStrF(a,fffixed,8,4));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='-15.246';
Edit2.Text:='4.642e-2';
Edit3.Text:='21';
end;

end.

Задание 3
Составить программу вычисления выражения согласно указанному варианту. Составить блок-схему алгоритма.



Код прграммы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, Math, ExtCtrls;
type
TForm1 = class(TForm)
Label2: TLabel;
Edit1: TEdit;
Memo1: TMemo;
Label5: TLabel;
Button1: TButton;
BitBtn1: TBitBtn;
Label1: TLabel;
Edit2: TEdit;
CheckBox1: TCheckBox;
RadioGroup1: TRadioGroup;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y,f,s: real;
st: String;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
Memo1.Lines.Add('x='+Edit1.Text);
Memo1.Lines.Add('y='+Edit2.Text);
Case RadioGroup1.ItemIndex of
0: f:= sinh(x);
1: f:=sqr(x);
2: f:=exp(x);
End;
If (x>y) Then Begin
s:=y*sqrt(abs(f))+3*sin(x);
st:= 'Ветвь 1';
End
Else If (x<y) Then Begin
s:=x*sqrt(abs(f));
st:= 'Ветвь 2';
End
Else Begin
s:=power(Abs(f),1/3)+power(x,3)/y;
st:= 'Ветвь 3';
End;
Label4.Caption:= st;
If CheckBox1.Checked Then Memo1.Lines.Add('Rezult s='+IntToStr(Round(s)))
Else Memo1.Lines.Add('Rezult s= '+FloatToStrF(s,ffGeneral,8,2));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='1';
Edit2.Text:='1';
end;
end.

Задание 4





Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, Math;
type
TForm1 = class(TForm)
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Memo1: TMemo;
Label5: TLabel;
Button1: TButton;
BitBtn1: TBitBtn;
Button2: TButton;
Edit3: TEdit;
Label1: TLabel;
Edit4: TEdit;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,xn,xk,h,s,y: real;
i,m:integer;
implementation

{$R *.dfm}
function fact(n: integer): integer;
var i,f: integer;
begin
if n<2 then fact:=1
else begin
f:=1;
for i:=1 to n do f:=f*i;
fact:=f;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
xn,xk,x,h,e,a,s,y :Extended;
n,k:Integer;
begin
Memo1.Lines.Add('Вычисление таблицы значений функции');
Memo1.Lines.Add('Исходные данные:');
xn:=StrToFloat(Edit1.Text);
Memo1.Lines.Add('xn='+FloatToStrF(xn,ffFixed,6,2));
xk:=StrToFloat(Edit2.Text);
Memo1.Lines.Add('xk='+FloatToStrF(xk,ffFixed,6,2));
m:=StrToInt(Edit3.Text);
h:=(xk-xn)/m;
Memo1.Lines.Add('h='+FloatToStrF(h,ffFixed,8,3));
e:=StrToFloat(Edit4.Text);
Memo1.Lines.Add('eps='+FloatToStrF(e,ffFixed,8,5));
Memo1.Lines.Add('Таблица значений функции');
Memo1.Lines.Add('x S(x) Y(x) n');
x:=xn;
Repeat
S:=1;
a:=1;
n:=0;
While Abs(a) > e Do
Begin
Inc(n);
a:=(2*n+1)/fact(n)*power(x,2*n);
s:=s+a
End;
y:=(1+2*x*x)*Exp(x*x);
Memo1.Lines.Add(FloatToStrF(x,ffFixed,6,2)+' '+FloatToStrF(s,ffFixed,
8,4)+' ' + FloatToStrF(y,ffFixed,8,4)+ ' '+ IntToStr(n));
x:=x+h;
Until x>xk+h/2
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0.1';
Edit2.Text:='1';
Edit3.Text:='14';
Edit4.Text:='0.001';
Memo1.Clear;
end;
end.

Задание 5
Найти произведение и количество элементов массива, расположенных до
первого отрицательного элемента. Составить блок-схему алгоритма.


Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, Math;
type
TForm1 = class(TForm)
Label2: TLabel;
Edit1: TEdit;
Memo1: TMemo;
Label5: TLabel;
Button1: TButton;
Edit3: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y,z,a: real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
z:=StrToFloat(Edit3.Text);
Memo1.Lines.Add('x='+floattostr(x));
Memo1.Lines.Add('y='+floattostr(y));
Memo1.Lines.Add('z='+floattostr(z));
a:=ln(power(y,-sqrt(abs(x))))*(x-y/2)+power(sin(arctan(z)),2);
Memo1.Lines.Add('a='+FloatToStrF(a,fffixed,8,4));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='-15.246';
Edit2.Text:='4.642e-2';
Edit3.Text:='21';
end;
end.

Задание 6
Задана матрица размером n•m. Определить k – количество «особых» элементов матрицы, считая элемент «особым», если в его строке слева от него находятся элементы, меньшие его, а справа – большие.
Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
StringGrid1: TStringGrid;
Button2: TButton;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Const
Nmax=100; // Максимальный размер массива
Type // Объявление типа одномерного массива
Mas = Array[1..Nmax,1..Nmax] of Extended; // размерностью Nmax
Var
Form1: TForm1;
A:Mas; // Объявление одномерного массива
i, j, n, m: Byte;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
Begin
Memo1.Clear;
Edit1.Text:='3'; // Ввод размерности массива
Edit2.Text:='4'; // Ввод размерности массива
n:=StrToInt(Edit1.Text);
m:=StrToInt(Edit2.Text);
StringGrid1.RowCount:=n+1;
StringGrid1.ColCount:=m+1;
For j:=0 To m Do Begin // Заполнение верхней строки
For i:= 0 to n do
if j=0 then StringGrid1.Cells[j, i]:=' i= '+IntToStr(i)
else if i=0 then StringGrid1.Cells[j, i]:=' j= '+IntToStr(j) // поясняющими подписями
else StringGrid1.Cells[j, i]:='0';
End;
StringGrid1.Cells[0,0]:='Массив';
end;
procedure TForm1.Button1Click(Sender: TObject); // Изменить размер
Begin // таблицы
n:=StrToInt(Edit1.Text);
m:=StrToInt(Edit2.Text);
StringGrid1.RowCount:=n+1;
StringGrid1.ColCount:=m+1;
For j:=0 To m Do Begin // Заполнение верхней строки
For i:= 0 to n do
if j=0 then StringGrid1.Cells[j, i]:=' i= '+IntToStr(i)
else if i=0 then StringGrid1.Cells[j, i]:=' j= '+IntToStr(j) // поясняющими подписями
else StringGrid1.Cells[i, j]:='0';
End;
StringGrid1.Cells[0,0]:='Массив';
End;
procedure TForm1.Button2Click(Sender: TObject);
Var
k,flag : Byte;
kol: integer;
Begin
{$R+}
Memo1.Clear;
Try {Заполнение массива А элементами из таблицы StringGrid1}
Memo1.Lines.Add('"Особые" элементы матрицы:');
For i:=1 To n Do
FOR j:=1 to m do
A[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);
kol:=0;
For i:=1 To n Do begin
FOR j:=1 to m do begin
flag:=1;
for k:=1 to j-1 do
if A[i,k]>=A[i,j] then flag:=0;
for k:=j+1 to m do
if A[i,k]<=A[i,j] then flag:=0;
if flag=1 then begin
Memo1.Lines.add('A[' + inttostr(i) +','+inttostr(j)+'] = ' + floattostr(a[i,j]));
kol:=kol+1;
end;
end;
end;
Memo1.Lines.add('Количество элементов = '+ inttostr(kol));
Except
On ERangeError Do Begin
ShowMessage('Выход за пределы массива. Уменьшите размер'+
'массива.');
Exit;
End;
On EConvertError Do Begin
ShowMessage('В ячейке отсутствует значение,'+
' либо число введено не правильно.');
Exit;
End
Else Begin
ShowMessage('Возникла неизвестная исключительная ситуация!');
Exit;
End;
End;
End;
End.

Задание 7
На междугородной АТС информация о разговорах содержит: дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Вывести по каждому городу общее время разговоров с ним и сумму.
Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit2: TEdit;
Label2: TLabel;
Edit3: TEdit;
Label3: TLabel;
Edit4: TEdit;
Label4: TLabel;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Edit1: TEdit;
Label1: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
TPhone = record
date: string[10];
code: string[6];
city: string[20];
time: real;
tarif: real;
nom1: string[15];
nom2: string[15];
end;
var
Form1: TForm1;
Fz : file of TPhone;
Ft : TextFile;
phone : array[1..100] of TPhone;
cities: array[1..100] of string;
nzap: integer;
FNameZ, FNameT : string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
Memo1.Clear;
Button1.Hide;
nzap:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
nzap:=nzap+1;
with phone[nzap] do begin
date:=Edit1.Text;
code:=Edit2.Text;
city:=Edit3.Text;
time:=StrToFloat(Edit4.Text);
tarif:=StrToFloat(Edit5.Text);
nom1:=Edit6.Text;
nom2:=Edit7.Text;
Memo1.Lines.Add(date+' '+code+' '+city+' '+FloatToStr(time)+' '+
FloatToStr(tarif)+nom1+' '+nom2);
end;
Write(fz,phone[nzap]);
Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear;
Edit5.Clear; Edit6.Clear; Edit7.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Title :='Создать новый файл';
if OpenDialog1.Execute then
begin
FNameZ:= OpenDialog1.FileName;
AssignFile(Fz, FNameZ);
Rewrite(Fz);
end;
Button1.Show;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
FNameZ:= OpenDialog1.FileName;
AssignFile(Fz, FNameZ);
Reset(Fz);
end;
nzap:=0;
Memo1.Lines.Clear;
if (FNameZ<>'') then begin
while not eof(fz) do begin
nzap:=nzap+1;
Read(fz,phone[nzap]);
with phone[nzap] do
Memo1.Lines.Add(date+' '+code+' '+city+' '+FloatToStr(time)+' '+
FloatToStr(tarif)+' '+nom1+' '+nom2);
end;
Button1.Show;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i, j, inc, ncit : integer;
sum, tim: real;
ph: TPhone;
begin
ncit:=0;
for i:=1 to nzap do begin
inc:=0;
for j:=1 to ncit do
if cities[j]=phone[i].city then inc:=1;
if inc=0 then begin
ncit:=ncit+1;
cities[ncit]:=phone[i].city;
end;
end;
AssignFile(Ft, 'Rez.txt');
Rewrite(Ft);
Memo1.Clear;
for i:=1 to ncit do begin
sum:=0;tim:=0;
for j:=1 to nzap do
if cities[i]=phone[j].city then begin
sum:=sum+phone[j].time*phone[j].tarif;
tim:=tim+phone[j].time;
end;
Memo1.Lines.Add('Общее время разговоров по городу '+cities[i]+' = '+FloatToStr(tim)+
'. Сумма разговоров = '+FloatToStr(sum));
Writeln(Ft,'Общее время разговоров по городу '+cities[i]+' = '+FloatToStr(tim)+
'. Сумма разговоров = '+FloatToStr(sum));
end;
CloseFile(ft);
end;
procedure TForm1.Button5Click(Sender: TObject);
var i:integer;
begin
if SaveDialog1.Execute then
begin
FNameT:= SaveDialog1.FileName;
AssignFile(Ft, FNameT);
Rewrite(Ft);
end;
for i:=1 to nzap do
with phone[i] do
Writeln(Ft, date+' '+code+' '+city+' '+FloatToStr(time)+' '+
FloatToStr(tarif)+' '+nom1+' '+nom2);
CloseFile(Ft);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
CloseFile(fz);
end;
end.
Категория: Другое | Добавил: dzedoon
Просмотров: 1716 | Загрузок: 4
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]