ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 79
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Входными данными для программы являются: исходный файл, содержащий числа в шестнадцатеричной системе счисления;
Выходными данными являются: выводимая на экран информация.
4.2 Разработка исходных текстов программ
program pr1; // Программа pr1
// Переводим символ в число
function ChToInt( ch: char ): integer;
begin // начало блока
Result := -1; // присваиваем к Result значение -1
if ( ('0' <= ch) and (ch <= '9') ) then // проверяем условие ( ('0' <= ch) and (ch <= '9') )
Result := ord(ch) - ord('0'); // присваиваем к Result значение ord(ch) - ord('0')
if ( ('a' <= ch) and (ch <= 'f') ) then // проверяем условие ( ('a' <= ch) and (ch <= 'f') )
Result := ord(ch) - ord('a') + 10; // присваиваем к Result значение ord(ch) - ord('a') + 10
if ( ('A' <= ch) and (ch <= 'F') ) then // проверяем условие ( ('A' <= ch) and (ch <= 'F') )
Result := ord(ch) - ord('A') + 10; // присваиваем к Result значение ord(ch) - ord('A') + 10
end; // конец блока
var // обьявление переменных f: TextFile;
// Обьявляем переменную f с типом TextFile s, s2: string;
// Обьявляем переменные s, s2 с типом string n, n2, sys, t, p, p2, i: longint;
// Обьявляем переменные n, n2, sys, t, p, p2, i с типом longint
begin // начало блока
Assign( f, 'input.txt' ); // присвоить файловой переменной f файловое имя 'input.txt'
reset(f);
readln( f, s ); // ввести f, s close(f);
writeln('Во что переводить?' ); // вывести 'Во что переводить?' writeln('1. Восьмеричная' ); // вывести '1. Восьмеричная' writeln('2. Десятичная' ); // вывести '2. Десятичная'
writeln('3.
Дополнительный код' ); // вывести '3. Дополнительный код' readln(t); // ввести t
{ Находим все числа }
p := 1; // присваиваем к p значение 1
while (p <= length(s)) do // Пока истинно выражение (p <= length(s))
begin // начало блока
{ Находим края слова }
if (s[p] = ',') then // проверяем условие (s[p] = ',')
begin // начало блока
inc(p); // увеличиваем p на единицу
continue; // продолжить итерацию цикла
end; // конец блока
p2 := p+1; // присваиваем к p2 значение p+1
while (p2 <= length(s)) do // Пока истинно выражение (p2 <= length(s))
if (s[p2] <> ',') then // проверяем условие (s[p2] <> ',') inc(p2)
else
break; // прервать цикл
{ Нашли что-нибудь? }
if (p2 = p) then // проверяем условие (p2 = p)
break; // прервать цикл
s2 := copy(s, p, p2-p ); // присваиваем к s2 значение copy(s, p, p2-p ) n := 0; // присваиваем к n значение 0
for i := 1 to length(s2) do
n := n * 16 + ChToInt(s2[i]); // присваиваем к n значение n * 16 + ChToInt(s2[i])
n2 := n; // присваиваем к n2 значение n write(s2,'='); // вывести s2,'='
if (t = 1) then // проверяем условие (t = 1)
begin // начало блока
s2 := ''; // присваиваем к s2 значение ''
while (n2 > 0) do // Пока истинно выражение (n2 > 0)
begin
// начало блока
s2 := Chr(ord('0')+ (n2 mod 8)) + s2; // присваиваем к s2 значение Chr(ord('0')+ (n2 mod 8)) + s2
n2 := n2 div 8; // присваиваем к n2 значение n2 div 8
end; // конец блока writeln( s2 ); // вывести s2
end; // конец блока
if (t = 2) then // проверяем условие (t = 2) writeln(n2); // вывести n2
if (t = 3) then // проверяем условие (t = 3)
begin // начало блока
n2 := -n2; // присваиваем к n2 значение -n2 s2 := ''; // присваиваем к s2 значение ''
for i := 0 to 32 do
if ( (n2 and (1 shl i)) <> 0 ) then // проверяем условие ( (n2 and (1 shl i)) <> 0 )
s2 := '1' + s2
else
s2 := '0' + s2; // присваиваем к s2 значение '0' + s2
writeln(s2); // вывести s2
end; // конец блока
p := p2; // присваиваем к p значение p2
end; // конец блока
end. // конец блока
Заключение
В данной курсовой работе был разработан алгоритм для перевода чисел в различные системы счисления.
В ходе курсового проектирования были изучены теоретические основы метода Эйлера и его модификации для решения дифференциальных уравнений. Рассмотрены основные характеристики используемых языков программирования – Pascal . На основе разработанного алгоритма решения задачи была разработана программа : на языке Pascal. Все программы протестированы на различных наборах данных и ошибок выявлено не было.
Список литературы
-
Алексенко А. Г. Микросхемотехника. М: ”Радио и связь” 1990г. -
Шауман А. М. Основы машинной арифметики. Ленинград, Издательство Ленинградского университета. 1979г. -
Ролич Ч. Н. – От 2 до 16, Минск, «Высшая школа», 1981г.
-
Выгодский М.Я. Справочник по элементарной математике, М.: Государственное издательство технико-теоретической литературы, 1956. -
Каган Б.М. Электронные вычислительные машины и системы, М.: Энергоатомиздат, 1985. -
Кодирование информации (Двоичные коды). Березнюк Н. Т. Андрущенко А. Г. И др. Харьковю 1978. -
Майоров С.А., Кириллов В.В., Приблуда А.А., Введение в микроЭВМ, Л.: Машиностроение, 1988. -
Математическая энциклопедия. М: “Советская энциклопедия” 1985г.
-
Калабеков Б. А. Цифровые устройства и микропроцессорные системы. М: “Горячая линия - Телеком” 2000г. -
Ворощук А. Н. Основы ЦВМ и программирования. М:”Наука” 1978г. -
Фомин С.В. Системы счисления, М.: Наука, 1987.