Линейные и разветвляющиеся алгоритмы
Создание алгоритма преобразования числа. Запись выражения в соответствии с правилами языка программирования. Разработка программы для построения простых логических выражений. Преобразование одномерных и двухмерных массивов. Работа с символьными данными.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 12.05.2012 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Линейные и разветвляющиеся алгоритмы. Универсальность алгоритма
Составить схему алгоритма решения каждой из трех задач, используя разветвляющиеся алгоритмические структуры. На основе разработанной схемы создать и протестировать программу.
1.1 Работа с целыми числами
Дано трехзначное число. В нём удалили первую слева цифру и приписали её на крайнюю правую позицию. Найти полученное число.
1. Схема алгоритма
Рис. 1. Схема алгоритма преобразования числа
2. Листинг программы.
program Exemple_1;
var
i: char;
c: string;
begin
{Ввод трехзначного числа с клавиатуры}
writeln('Введите трехзначное число');
readln(c);
i:=c[1];
c[1]:=c[2];
c[2]:=c[3];
c[3]:=i;
writeln(c);
readln;
end.
3. Результат работы программы
Рис. 2. Результат работы программы
1.2 Запись выражения в соответствии с правилами языка программирования. Форматированный вывод
Найти значения выражения для вводимых с клавиатуры значений переменных A, B, C. Вывести результат с точностью 5 знаков после запятой.
Вариант 2.
1. Схема алгоритма
Рис. 3. Схема алгоритма вычисления выражения
2. Листинг программы
program Exemple_2;
var
A,B,C : real;
begin
write('Введите A:');
readln(A);
write('Введите B:');
readln(B);
write('Введите C:');
readln(c);
writeln((Sin(A)/Cos(A)+B)/exp(Sin(A)- ln(C))*(Sin(A)/Cos(A))*(Sqrt(A+Sqr(c)))/Cos(Sqrt(A))*ln(Sqrt((A+B)/
(Sqrt(A)+Sqrt(B))-C)/C+((C+Sqrt(5*A))/C+(Sqrt(A+B))/
(B*Sqrt(C)))):8:5);
end.
3. Результат работы программы
Рис. 4. Результат работы программы
1.3 Построение простых логических выражений
Написать программу, проверяющую принадлежность точки с координатами (x, y) заштрихованной области на плоскости
Вариант 12.
1. Схема алгоритма
Рис. 5. Схема алгоритма определения положения точки
2. Листинг программы
Program Exsemple_3;
var
x,y: integer;
r:real;
begin
writeln('Введите координаты x;y');
read(x);read(y);
r:=(sqrt(x*x+y*y));
{если заданные координаты меньше/равны -1 и больше/равны 0,
то точка находится в заштрихованной области}
if (x>=(-1))and(x<=0)and
(y>=(-1))and(y<=0)and(sqrt(x*x+y*y)<=1)then
writeln(' Точка принадлежит заштрихованной области')
else
writeln(' Точка не принадлежит заштрихованной области')
end.
3. Результат работы программы
Рис. 6. Точка принадлежит заштрихованной области
Рис. 7. Точка не принадлежит заштрихованной области
Вывод: В результате выполнения работы были закреплены практические навыки создания линейных и разветвляющихся алгоритмов. Программы написаны и протестированы.
2. Преобразование одномерных массивов
Составить схему алгоритма решения задачи в соответствии с заданным вариантом. На основе разработанной схемы создать и протестировать программу.
Вариант 12.
Задан массив Y(12). Найти и переписать в новый массив все пары чисел, которые имеют разные знаки. Числа в парах, имеющих одинаковые знаки, поменять местами и переписать в новый массив.
2.1 Схема алгоритма
Рис. 8. Схема алгоритма
2.2 Листинг программы
program Exemple_4;
uses crt;
var
Y, Z, X: array[1..12] of real;
i: byte;
begin
writeln('Введите массив:');
for i:= 1 to 12 do
read(Y[i]);
for i:= 1 to 6 do
if (Y[i*2-1] < 0) and (Y[i*2] > 0) then
begin
Z[i*2-1]:= Y[i*2-1]; Z[i*2]:= Y[i*2];
end
else
if (Y[i*2-1] > 0) and (Y[i*2] < 0) then
begin
Z[i*2-1]:= Y[i*2-1]; Z[i*2]:= Y[i*2];
end
else
begin
X[i*2-1]:= Y[i*2]; X[i*2]:= Y[i*2-1];
end;
writeln;
writeln('Массив Z:');
for i:= 1 to 12 do
write(z[i]:3:0);
writeln;
writeln('Массив X:');
for i:= 1 to 12 do
write(x[i]:3:0);
readkey;
clrscr;
end.
2.3 Результат работы программы
Рис. 9. Результат работы программы
Вывод: В результате выполнения работы были закреплены практические навыки работы с одномерными массивами и циклами. Программа написана и протестирована.
3. Преобразование двумерных массивов
Составить схему алгоритма решения задачи в соответствии с заданным вариантом. На основе разработанной схемы создать и протестировать программу.
Вариант 12.
В матрице Z(5,5) поменять местами элементы главной диагонали с элементами (соответствующими) первого столбца, если элемент главной диагонали не равен нулю. Элементы главной диагонали вывести в массив В.
3.1 Схема алгоритма
Рис.10. Схема алгоритма
3.2 Листинг программы
алгоритм число массив символьный
program Exemple_5;
var
Z: array[1..5, 1..5] of integer;
B: array[1..5] of integer;
i,j: byte;
begin
writeln('Введите матрицуZ[5,5] ');
begin
for i:=1 to 5 do
for j:=1 to 5 do
read(Z[i,j]);
end;
for i:= 1 to 5 do
begin
b[i]:= Z[i, i];
if Z[i, i] <> 0 then begin
Z[i,i]:=Z[i,1];Z[i,1]:=b[i]; end;
end;
writeln;
writeln('Матрица Z[5,5] после преобразования');
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(Z[i,j]:2);
writeln('');
end;
writeln;
writeln('Элементы главной диагонали матрицы');
for i:= 1 to 5 do
write(B[i], ' ');
end.
3.3 Результат работы программы
Рис. 11. Результат работы программы
Вывод: В результате выполнения работы были закреплены практические навыки работы с двумерными массивами. Программа написана и протестирована.
4. Работа с символьными данными
Составить схему алгоритма решения задачи в соответствии с заданным вариантом. На основе разработанной схемы создать и протестировать программу.
Вариант 12.
Оставить в строке те символы, которые не равны символу, введенному с клавиатуры.
4.1 Схема алгоритма
Рис. 12. Схема алгоритма
4.2 Листинг программы
program Exemple_6;
uses crt;
var
s: string;
ch: char;
num: byte;
begin
clrscr;
writeln('Введите строку');
read(s);
writeln('Введите символ с клавиатуры');
ch:= readkey;
writeln(ch);
repeat
num:=pos(ch, s);
if num <> 0 then
delete(s, num, num);
until num = 0;
writeln;
writeln('Строка после преобразования = "',s,'"');
readkey;
end.
4.3 Результат работы программы
Рис. 13. Результат работы программы
Вывод: В результате выполнения работы были закреплены практические навыки работы со строками. Программа написана и протестирована.
Размещено на Allbest.ru
Подобные документы
Разработка программы, реализующей алгоритм обработки двухмерных и одномерных массивов. Область применения, требования к программным средствам. Язык программирования Turbo Pascal. Арифметические операции и выражения. Используемые модули и операторы.
курсовая работа [439,3 K], добавлен 21.12.2015Ознакомление с особенностями программной реализации алгоритмов преобразования одномерных массивов. Исследование развития вычислительной техники, которое подразумевает использование компьютерных и информационных технологий. Изучение интерфейса программы.
курсовая работа [1,0 M], добавлен 02.06.2017Алгоритмы, алфавит языка, структура программы, написанной на Турбо Паскале. Целые, вещественные, логические, символьные типы данных, их совместимость. Линейные алгоритмы, пустой и составной операторы, простейший ввод и вывод, разветвляющиеся алгоритмы.
курсовая работа [49,8 K], добавлен 03.11.2009Изучение принципов построения линейных алгоритмов и простых расчетных программ на языке программирования C. Разработка программы расчета математических выражений на основе вводимых данных. Создание консольных приложений в среде Microsoft Visual Studio.
лабораторная работа [254,4 K], добавлен 23.11.2014Проектирование лексического и синтаксического анализаторов учебного языка. Правила преобразования логических выражений в ПОЛИЗ. Формирование триад, оптимизация их списка. Логическая структура программы. Тестирование модулей транслятора-интерпретатора.
курсовая работа [1,3 M], добавлен 28.05.2013Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
лабораторная работа [14,2 K], добавлен 03.10.2010История развития языка программирования Pascal, его основные концепции. Вычисления в математических задачах. Изменение порядка выполнения инструкций программы. Выполнение оператора цикла. Логические выражения, линейные алгоритмы, условные операторы.
методичка [847,6 K], добавлен 10.01.2013Формальная запись задачи унификации, представление продукции и выражения в виде дерева. Преобразование выражения в префиксную форму и определение классов для реализации алгоритма. Операции проверки применимости продукций и замены свободных переменных.
контрольная работа [372,3 K], добавлен 24.01.2011Изучение элементов языка С++, программирование разветвлений и циклов с использованием операторов условного и перехода. Обработка одномерных массивов. Поиск максимального элемента массива с заданной размерностью. Листинги программы и результатов.
курсовая работа [647,7 K], добавлен 05.02.2013Исследование арифметических выражений и разработка простых программ. Таблица переменных для алгоритма и программы. Алгоритм решения, текст программы на языке С. Разработка программы вычисления значений выражений, сравнение результатов с ручным подсчетом.
лабораторная работа [282,7 K], добавлен 30.01.2015