Автор: Пользователь скрыл имя, 26 Мая 2015 в 15:47, реферат
Компиляторы полностью обрабатывают весь текст программы (он иногда называется исходный код). Они просматривают его в поисках синтаксических ошибок (иногда несколько раз), выполняют определенный смысловой анализ и затем автоматически переводят (транслируют) на машинный язык — генерируют машинный код. Нередко при этом выполняется оптимизация с помощью набора методов, позволяющих повысить быстродействие программы. В результате законченная программа получается компактной и эффективной, работает в сотни раз быстрее программы, выполняемой с помощью интерпретатора, и может быть перенесена на другие компьютеры с процессором, поддерживающим соответствующий машинный код.
Программа по теме «Программа записи двоичного числа в восьмеричной, шестнадцатеричной системах счисления и наоборот».
Для запуска программы необходимо запустить файл Builov.exe.
Далее следует работать по указаниям программы:
ЗАКЛЮЧЕНИЕ
В результате работы над курсовым проектом были закреплены навыки составления алгоритма для поставленной задачи и воплощения этого алгоритма в текст программы, написанной на языке Pascal. Также одной из основных: задач является обучение правильному оформлению документации программы, что немаловажно для специалиста. Кроме этого были получены основные сведения об отладке программ и улучшены навыки работы в прикладных программах, например Microsoft Word.
Уровень сложности поставленной задачи позволял реализовать основные этапы разработки реальных программ и расширить границы знания в области программирования на языке Паскаль.
Программирование богато и многообразно. Ведь кажется нет такой сферы человеческой деятельности, где нельзя было бы с пользой применить вычислительную машину для оценки, планирования, моделирования и т.п. И это многообразие задач переходит в многообразие программ, которые должны разрабатывать программисты. Они пытаются справиться с этим многообразием, «заключив» его в проблемно — ориентированные языки программирования. Языки вбирают в себя специфические черты конкретных сфер программирования - характерные структуры данных, принципы организации типичных процессов, соответствующую терминологию и таким образом делают сам процесс программирования более универсальным.
После того, как любая более или менее
сложная задача сформулирована, каждый
программист снова и снова остается один
на один со своей собственной задачей:
ему нужно составить программу. Выбрать,
как именно следует расположить и связать данные в памяти, понять,
какая именно последовательность операторов,
способных выполнить поставленную задачу.
И как организовать операторы в цикл, который
будет с каждым шагом приближать машину
к намеченной цели. Выбрать, понять, изобрести,
проверить, усомниться и повторить всё
с начала.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1 Андреева Е., Фалина И. Системы счисления и компьютерная арифметика. Изд. 2-е,-М.: Лаборатория Базовых Знаний, 2008. – 327 с.
2 Погодин С.В. «Лекции по информатике: Системы счисления». Методические разработки для учащихся образовательных учреждений. г. Нелидово, Тверская область, 2012. – 527 с.
3 Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования: учебник для студ. учреждений сред. проф. образования. – М.: Издательский центр «Академия», 2013. – 304 с.
4 Рудаков А.В. Технология разработки программных продуктов – 2-е изд., стер. – М.: Издательский центр «Академия», 2006. – 208 с.
5 Угринович Н.Д. Информатика и информационные технологии. Учебник для 10-11 классов. – М.: Бином. Лаборатория Знаний, 2013. – 435 с.
6 http://www.vashdom.ru/gost/2_
Приложение А
Текст программы с комментариями
Program semen;
uses crt;
var x,y:integer; c,w:char; t,s8,s16:string;
const mas1:array['0'..'7'] of string[3]=('000','001','010','
procedure iz2v8;
const
m:array['0'..'7'] of string=('000','001','010','
var
s,s2:string;
n,i,p,pp:integer;
begin
repeat
clrscr; writeln; Gotoxy(10,1); textcolor(15); {Очистка, координаты текущей позиции x и y, цвет текста}
writeln('Перевод из 2 сс в 8 сс');
writeln; textcolor(11);
Gotoxy(0,3); textcolor(11);
write('Введите число в 2-й сс '); x:=wherex; y:=wherey;
repeat Gotoxy(x,y); clreol; Readln(s2);
n:= Length(s2); pp:=0;
for i:=1 to n do
if s2[i] in ['0','1'] then pp:=pp+1;
until pp=n;
s8:=''; s:=s2;
Case n mod 3 of
1:s2:='00'+s2;
2:s2:='0'+s2;
end; writeln; writeln;
n:=length(s2);
while n>0 do
begin
t:=copy(s2,n-2,3); delete(s2,n-2,3);
for c:='0' to '7' do
if t=mas1[c] then s8:=c+s8;
n:=length(s2);
end;
writeln(s,' =====> ',s8); writeln;
write('Продолжить ввод? Да - нажмите любую клавишу, Нет - 0 ');
readln(p);
until p=0; //iz2v8:=s8;
end;
procedure iz2v16;
Type tar=array[0..15] of string[4];
T16=array[0..15] of char;
var s2,chet,s16,s:string;
n,p,i:integer;
const mas:tar=('0000','0001','0010',
mas16:T16=('0','1','2','3','4'
begin
repeat clrscr; writeln; Gotoxy(10,1); textcolor(15); {Очистка, координаты текущей позиции x и y, цвет текста}
writeln('Перевод из 2 сс в 16 сс');
writeln;
textcolor(11);
Gotoxy(0,3);
textcolor(11);
write('Введите число в 2-й сс ');
x:=wherex; y:=wherey;
repeat
Gotoxy(x,y); clreol;
readln(s2); n:=length(s2); s:=s2; s16:='';
for i:=1 to n do
until s[i] in ['0','1'];
Case n mod 4 of {Добавление нулей}
1:s:='000'+s;
2:s:='00'+s;
3:s:='0'+s;
end; writeln; writeln;
n:=length(s);
while n>0 do
begin
chet:=copy(s,n-3,4); delete(s,n-3,4);
for i:=0 to 15 do if chet=mas[i] then s16:=mas16[i]+s16;
n:=length(s);
end;
writeln(s2,' ==> ',s16); writeln;
write('Продолжить ввод? Да - нажмите любую клавишу, Нет - 0 ');
readln(p);
until p=0;
end;
procedure iz8v2;
const
m:array['0'..'7'] of string=('000','001','010','011
var
s,s2,s8:string;
n,i,p,pp:integer;
begin
repeat
clrscr; writeln; Gotoxy(10,1); textcolor(15); {Очистка, координаты текущей позиции x и y, цвет текста}
writeln('Перевод из 8 сс в 2 сс');
writeln;
textcolor(11);
Gotoxy(0,3);
textcolor(11);
write('Введите число в 8-й сс ');
x:=wherex; y:=wherey;
repeat
Gotoxy(x,y); clreol; Readln(s8);
n:= Length(s8);
pp:=0;
for i:=1 to n do
if s8[i] in ['0'..'7'] then pp:=pp+1;
until pp=n;
s:='';
for i:=1 to n do s:=s+m[s8[i]];
writeln; writeln(s8,' ==> ',s); writeln;
writeln('Продолжить ввод? Да - нажмите любую клавишу, Нет - 0 ');
readln(p);
until p=0;
end;
procedure iz16v2;
const
m:array['0'..'F'] of string=('0000','0001','0010','
'1000','1001','','','','','','
var
s,s2,s16:string;
n,i,p,pp:integer;
begin
repeat clrscr; writeln; Gotoxy(10,1); textcolor(15); {Очистка, координаты текущей позиции x и y, цвет текста}
writeln('Перевод из 16 сс в 2 сс'); writeln;
textcolor(11);
Gotoxy(0,3);
textcolor(11);
write('Введите число в 16-й сс ');
x:=wherex; y:=wherey;
repeat
Gotoxy(x,y); clreol; Readln(s16);
n:= Length(s16);
pp:=0;
s16:=UpperCase(s16);
for i:=1 to n do
if s16[i] in ['0'..'9','A'..'F','a'..'f'] then pp:=pp+1;
until pp=n;
s:='';
for i:=1 to n do s:=s+m[s16[i]];
writeln; writeln(s16,' ==> ',s); writeln;
writeln('Продолжить ввод? Да - нажмите любую клавишу, Нет - 0 '); read;
readln(p);
until p=0;
end;
begin
textbackground(1); TextSize(18); Clrscr;
Gotoxy(17,5); TextColor(14);
write('Программа записи двоичного числа в восьмиричной,');
Gotoxy(17,6); TextColor(14);
write('шестнадцатиричной системах счисления и наоборот');
Gotoxy(47,13); TextColor(14);
write('Руководитель:');
Gotoxy(61,14); TextColor(11);
write('Кулида Н.П');
Gotoxy(47,15); TextColor(14);
write('Выполнил студент группы ВЭПК-401: ');
Gotoxy(61,16); TextColor(11);
write('Буйлов С.Н');
Gotoxy(40,22); TextColor(11);
write('2015',' ');
Gotoxy(25,24); TextColor(11);
write('Для продолжения нажмите любую клавишу'); c:=readkey;
repeat clrscr;
window(18,5,70,24); Gotoxy(10,1); textcolor(15); writeln;
writeln('Меню программы':25); writeln; textcolor(11); {Меню программы}
writeln('Перевод из 2 сс в 8 сс ',' ':10,' ===> 1'); writeln;
writeln('Перевод из 2 сс в 16 сс ',' ':9,' ===> 2'); writeln;
writeln('Перевод из 8 сс в 2 сс ',' ':10,' ===> 3'); writeln;
writeln('Перевод из 16 сс в 2 сс ',' ':9,' ===> 4'); writeln;
writeln('Выход из программы ',' ':14,' ===> 0'); writeln;
writeln;
write('Выберите пункт меню (0..4) ');
x:=wherex; y:=wherey; {Координаты текущей позиции x и y}
repeat Gotoxy(x,y); ClrEol; {Удаление символа строки}
readln(w); until w in ['0'..'4'];
Case w of
'1':begin iz2v8 end;
'2':begin iz2v16 end;
'3':begin iz8v2 end;
'4':begin iz16v2 end;
'0':exit;
end;
until w='0';
End.