Составление программы на языке Паскаль
Составление на языке Паскаль программы, управляющейся с помощью меню. Извлечение квадратного корня, возведение в квадрат отрицательных элементов из положительных элементов исходного массива. Оформление в виде процедур или функций алгоритма ввода.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 09.04.2012 |
Размер файла | 285,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Общая постановка задачи
Составить на языке Паскаль программу, управляющуюся с помощью меню. Программа должна реализовать действия согласно варианту.
Каждая подгруппа выполняет свой вариант задания. Вариант определяется по номеру подгруппы. Номер варианта совпадает с номером подгруппы в списке составов подгрупп. В подгруппе может быть от одного до трёх студентов.
В меню обязательно должны войти пункты:
1) ввод одномерного массива;
2) вывод одномерного массива;
3) обработка одномерного массива (задача 1);
4) обработка одномерного массива (задача 2);
5) выход из программы (с подтверждением).
2. Задачи обработки данных
Задача 1:
из положительных элементов исходного массива извлечь квадратный корень, отрицательные элементы возвести в квадрат;
Задача 2:
задать с клавиатуры число К и определить, сумма скольких элементов массива (по порядку следования) превысит это число;
Алгоритмы ввода, вывода элементов массива и алгоритмы задач обработки массива оформить в виде процедур или функций, внутренних по отношению к главной программе.
Оформить реализацию указанных пунктов в виде обращения к сформированным процедурам или функциям.
паскаль программа корень массив
3. Тестовые примеры
Для примера возьмем одномерный массив, состоящий из 14 числовых элементов:
9 0 -7 1
В результате выполнения первой задачи (Пункт 3 программы) получим:
3 0 49 1
Т.к. все элементы массива, исключая третий (-7) неотрицательны, из них извлекается корень. Третий элемент возводится в квадрат, так как он отрицательный
В результате выбора 4 пункта программы (вторая задача), при задании оператора K равного 3, программа выдаст результат: 1 элемент > 3, т.к. среди элементов массива (9,0, - 7,1) только сумма первого и второго элементов массива (0 и 9) больше K (K = 3)
4. Скриншоты этапов выполнения программы
Рис. 1. Главное меню программы
Рис. 2. Ввод массива (Пункт 1 программы)
Рис. 3. Просмотр введенного массива для проверки (во втором пункте программы)
Рис. 4. Выполнение Задачи 1 (возвести отрицательные элементы массива в квадрат, а из положительных извлечь корень)
Рис. 5. Ввод K=3 и выполнение
Рис. 6. Диалог при выходе из программ (Пункт 5)
5. Распечатка исходных текстов программных файлов, составляющих проект
Программа реализована на языке программирования Pascal. Исходный текст программы находится в файле lab_variant6.pas
Структурно программа состоит из:
ь блока, описывающего все переменные, используемые в программе и их тип;
ь процедур решения задач;
ь главной управляющей программы;
ь процедуры подсчёта количества ошибочных обращений.
Для понимания программы её текст снабжён соответствующими комментариями. Главная программа осуществляет организацию меню, ввод / вывод массивов и передачу управления процедурам обработки данных.
Процедуры обработки данных оформлены как самостоятельные и осуществляют обработку массивов в соответствии с задачами 1 и 2.
В программе реализованы операторы, которые обрабатывают ошибочные обращения пользователя и выдают соответствующие сообщения.
6. Текст программы
Program Lab_var_6;
Uses CRT;
Var choice, code: integer;
choice2, exit_ans, flag: string;
st, n, i, j, k, m, p, sum: integer;
F, Fl: Boolean;
A: Array [1..15] of Integer;
B: Array [1..15] of Real;
C: Array [1..15] of Integer;
Type
atype = array [1..15] of integer;
btype = array [1..15] of real;
Procedure Program_3 (MassivA: array of integer; MassivB: array of real);
Begin
For i:= 1 To N Do Begin
If (A[i] > 0) Then Begin
B[i]:= sqrt (A[i]);
End
Else If (A[i] < 0) Then Begin
B[i]:= sqr (A[i]);
End
Else B[i]:= A[i];
End;
For i:= 1 To N Do writeln (' B [', i, '] = ', B[i]: 6: 2);
End;
Procedure Program_4 (MassivA: array of integer; summa: Integer);
Begin
writeln ('vvedite K:');
Readln(K);
For i:= 1 To N Do Begin
If (A[i] > K) Then sum:= sum + 1;
End;
writeln (sum, ' elementov > ', K);
sum:= 0;
End;
Begin
st:= 1;
j:= 1;
F:= false;
Fl:= true; {}
sum:= 0;
If st > 3 Then Begin
clrscr;
writeln ('Limit ischerpan!');
End
Else While F = false Do Begin
{clrscr;}
Repeat
gotoxy (30,2); textcolor (13);
writeln ('Menu Content ');
gotoxy (22,5); textcolor(11);
writeln ('1. First punkt…… ');
gotoxy (22,7);
writeln ('2. Second punkt….');
gotoxy (22,9);
writeln ('3. kvadr koren iz pol. elem-v, otrihcatelnie v kvadrat….');
gotoxy (22,11);
writeln ('4. kol-vo elem-ov, chia summa previsit zadannoe chislo……');
gotoxy (22,13);
writeln ('5. Exit of program……..');
gotoxy (27,17); textcolor(3);
writeln ('Your select: ');
gotoxy (32, 19);
Readln(choice2);
val (choice2, choice, code);
If (code <> 0)
Then Begin
writeln ('Vi vveli ne chislo! ', choice2, ' repeat input! ostalos popitok: ', 3-st);
st:= st +1;
End;
Until code = 0;
case choice of
1: Begin
If st > 3 Then Begin
clrscr;
writeln ('Limit ischerpan!');
F:= true;
End {end if}
Else Begin
clrscr;
If Fl = true Then Begin
writeln ('Vi chotite vvesti novie dannie?');
readln(flag);
If flag = 'y' Then Begin
Writeln ('Input N:');
Readln(N);
For i:= 1 To N Do Begin
writeln ('Input A [', i, '] = ');
Readln (A[i]);
End; {end for}
End; {end if flag = 'y'}
{Else If flag = 'n' Then}
Fl:= true;
End; {end else}
readln;
clrscr;
end; {end if}
End;
2: Begin
clrscr;
If Fl = True Then Begin
For i:= 1 To N Do Begin
writeln ('A[', i, '] = ', A[i]);
End;
End
Else writeln ('Input massiv! (1)');
readln;
clrscr;
End;
3: Begin
If st > 3 Then Begin
clrscr;
writeln ('Limit ischerpan!');
F:= true;
End {end if}
Else Begin
clrscr;
{из положительных элементов исходного массива извлечь
квадратный корень, отрицательные элементы возвести в квадрат;}
If Fl = True Then Begin
{begin program 3}
(*For i:= 1 To N Do Begin
If (A[i] > 0) Then Begin
B[i]:= sqrt (A[i]);
End
Else If (A[i] < 0) Then Begin
B[i]:= sqr (A[i]);
End
Else B[i]:= A[i];
End;
For i:= 1 To N Do writeln (' B [', i, '] = ', B[i]: 6: 2);*)
Program_3 (A[n], B[n]);
{end program 3}
End {end if Fl = True}
Else writeln ('Input massiv! (1)');
End; {end else if st <= 3}
readln;
clrscr;
End;
4: Begin
If st > 3 Then Begin
clrscr;
writeln ('Limit ischerpan!');
F:= true;
End {end if}
Else Begin
clrscr;
{задать с клавиатуры число К и определить, сумма скольких
элементов массива (по порядку следования) превысит это число;}
If Fl = True Then Begin
{begin program 4}
(* writeln ('vvedite K:');
Readln(K);
For i:= 1 To N Do Begin
If (A[i] > K) Then sum:= sum + 1;
End;
writeln (sum, ' elementov > ', K); *)
Program_4 (A[n], sum);
{end program 4}
End {end if}
Else writeln ('Input massiv! (1)');
End; {end else}
readln;
clrscr;
End;
5: Begin
Writeln ('do you want to exit programm? y/n');
Readln (exit_ans);
If exit_ans = 'y' Then Begin
clrscr;
F:= true;
writeln (' Exit');
End
Else If exit_ans = 'n' Then Begin
clrscr;
F:= false;
End
Else
End;
Else writeln ('Incorrect menu point ', choice);
end;
End;
Readln;
End.
Размещено на Allbest.ru
Подобные документы
Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.
лабораторная работа [946,5 K], добавлен 23.11.2014Выбор метода проектирования транслятора с языка Паскаль на язык Си, разработка и кодирование алгоритма программы. Использование допустимых операторов в исходном тексте, определение типов переменных и синтаксиса логических и арифметических выражений.
курсовая работа [1,0 M], добавлен 03.07.2011Создание транслятора, обрабатывающего код программы на языке Паскаль и за счет эквивалентных операторов генерирующего программу на Си. Особенности внешней спецификации и работы лексического анализатора. Структура программы, вывод результатов на экран.
курсовая работа [254,0 K], добавлен 02.07.2011Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов.
курсовая работа [305,9 K], добавлен 03.07.2011Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014Программирование на языке Паскаль: алфавит, решение задач, простейшие программы, разветвляющие программы, циклические программы, ввод-вывод, массивы, подпрограммы, строковые данные, записи, файлы, использование библиотеки CRT, графика в Паскале.
учебное пособие [211,1 K], добавлен 30.03.2008Схема разбора арифметического и логического выражения. Внешняя спецификация конвертора и алгоритм перевода программ на языке Паскаль в текст на языке Си. Назначение подпрограмм, особенности констант и переменных. Код программы и ее тестирование.
курсовая работа [567,5 K], добавлен 03.07.2011Структура языка Паскаль, встроенные процедуры и функции. Составление алгоритма решения уравнения, описывающего работу кривошипно-шатунного механизма, с помошью метода итерации, метода Гаусса и метода Зейделя. Блок-схемы алгоритмов и текст программы.
курсовая работа [64,6 K], добавлен 07.05.2011Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.
курсовая работа [233,5 K], добавлен 14.12.2012