Составление программы на языке Паскаль

Составление на языке Паскаль программы, управляющейся с помощью меню. Извлечение квадратного корня, возведение в квадрат отрицательных элементов из положительных элементов исходного массива. Оформление в виде процедур или функций алгоритма ввода.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.