Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы - Паскаль, Си, Java, PHP.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
5.29 Mб
Скачать

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ

КАФЕДРА “ИНФОРМАТИКА”

ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ

Автор: старший преподаватель Лучников В.А.

Иркутск

2012

Лучников В.А. Программирование на языках высокого уровня. Методические указания по выполнению лабораторных работ: Учебное пособие – Иркутск: ИрГУПС, 2012.-136 с.

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

Учебное пособие представляет собой описание 9 лабораторных работ по основным разделам программирования на алгоритмических языках Паскаль, Си, Java и PHP. В каждой лабораторной работе приведена методика ее выполнения, начиная с постановки задачи и заканчивая получением результата. Все лабораторные работы имеют по 15-20 вариантов заданий.

Учебное пособие является дополнением к учебникам автора “Программирование на языке Паскаль”, “Программирование на языке Си”, “Программирование на языке PHP”,

“Программирование на языке Java”.

Содержание

Лабораторная работа №1. Выражения и операторы присваивания . . . . . . . . . . . . . . . .4

Лабораторная работа №2. Ветвления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

Лабораторная работа №3. Циклы, управляемые условиями . . . . . . . . . . . . . . . . . . . . 23

Лабораторная работа №4. Циклы с параметром . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

Лабораторная работа №5. Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53

Лабораторная работа №6. Массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Лабораторная работа №7. Подпрограммы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96

Лабораторная работа №8. Файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Лабораторная работа №9. Рекурсия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Лабораторная работа № 1

Выражения и операторы присваивания

Тема: Порядок составления программ на языке Паскаль. Программирование алгоритмов линейной структуры. Программирование ввода и вывода данных.

Цель работы: Освоить структуру программы на языке Паскаль, порядок записи выражений, операторы ввода и вывода.

Задание на лабораторную работу

  1. Получить задание в соответствии с номером своего варианта.

  2. Составить схему алгоритма решения задачи.

  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.

  4. Осуществить компиляцию, отладку и тестирование программы.

  5. Получить результат.

  6. Оформить отчет по лабораторной работе.

Пример оформления работы

  1. Составить алгоритм и написать код программы, вычисляющей значения переменных S и R по следующим формулам:

где

Значение переменной x ввести с консоли.

  1. Схема алгоритма решения задачи:

  1. Код программы

    1. На языке Паскаль:

Program Variant_0;

Uses WinCRT;

Const a=3.25e-5;

B=2.0*Pi/3.0;

Var x, r, s: Real;

Begin

WriteLn(‘Лабораторная работа №1’);

WriteLn(‘Вариант №0’);

WriteLn(‘ИС-11-1’);

WriteLn(‘Пупкин Василий’);

WriteLn;

Write(‘x=’); {ввод исходных данных}

ReadLn(x);

s:= Sqrt(x*b*b/a + Cos((x+b)*(x+b))* Cos((x+b)*(x+b)));

r:= x*x*(x+s)/(a*b) – Sqr(Sin(Exp(a*Ln(x)))/Cos(Exp(a*Ln(x)));

WriteLn(‘s=’, s:5:3); {вывод результата}

WriteLn(‘r=’, r:5:3);

End.

    1. На языке Си:

#include <stdio.h> //директивы препроцессора

#include <conio.h>

#include <math.h>

int main()

{

const float a=3.25e-5; //задание констант

const float b=2.0*3.14159265/3.0;

float x, r, s; //описание переменных

printf("\nЛабораторная работа №1");

printf("\nВариант №0");

printf("\nПО-11-1");

printf("\nПупкин Василий\n");

printf("\nx="); //ввод исходных данных

scanf("%f", &x);

s = sqrt(x*b*b/a + cos((x+b)*(x+b)) * cos((x+b)*(x+b)));

r = x*x*(x+s)/(a*b) - tan(pow(x,a)) * tan(pow(x,a));

printf("\ns=%5.3f", s); //вывод результата

printf("\nr=%5.3f", r);

return 0;

}

    1. На языке Java:

package javaapplication1;

// Импорт библиотеки графических компонентов Swing

import javax.swing.*;

import java.util.*;

public class JavaApplication1 // задание нового класса

{

// описание главного метода main этого класса

public static void main(String[] args)

{

// описание констант

final Double a=3.25e-5, b=2.0*Math.PI/3.0;

// описание переменных:

Double s, r, x; // действительного типа

String input, text; // строк класса String

//консольный вывод

System.out.println("Лабораторная работа №1");

System.out.println("Вариант №0");

System.out.println("ПО-11-1");

System.out.println("Пупкин Василий");

System.out.println();

// вызов диалогового окна ввода исходных данных

input=JOptionPane.showInputDialog("Введите значение переменной x:");

// преобразование из строкового значения в вещественное x=Double.parseDouble(input);

// формирование строки вывода

text="Значение переменной х равно:\n" + x;

// вызов диалогового окна для эхо-печати

JOptionPane.showMessageDialog(null, text);

//консольный вывод

System.out.printf("x=%6.3f\n", x);

// вычисление значений переменных по заданному алгоритму s=Math.sqrt(x*b*b/a+Math.cos((x+b)*(x+b))*Math.cos((x+b)*(x+b)));

r=x*x*(x+s)/(a*b)-Math.tan(Math.pow(x,a))*Math.tan(Math.pow(x,a));

// формирование строки вывода

text="Значение переменной s равно:\n" + s;

// вызов диалогового окна вывода переменных

JOptionPane.showMessageDialog(null, text);

//консольный вывод

System.out.printf("s=%10.5f\n", s);

// формирование строки вывода

text="Значение переменной r равно:\n" + r;

// вызов диалогового окна вывода переменных

JOptionPane.showMessageDialog(null, text);

//консольный вывод

System.out.printf("r=%12.5f\n", r);

}

}

    1. На языке PHP:

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>

Лабораторная работа №1

</title>

</head>

<body BgColor="silver" text="blue">

<H2>Лабораторная работа №1</h2>

<H3>Выражения и операторы присваивания</h3>

Вариант №0

<br>ПО-11-1

<br>Пупкин Василий

<br>

<br>

<Form name="LabRab_1" action="" method="POST">

Введите значение x:<br>

<input type="text" name="x" size="5"><br>

<input type="submit" value="Вычислить"><br>

</form>

<?php

// получение значения переменной из формы

$x=$_POST['x'];

//задание констант

$a=3.25e-5;

$b=2.0*M_PI/3.0;

// начальные значения

// выходных переменных

$s=NULL;

$r=NULL;

// вычисление переменных по заданному алгоритму

$s = sqrt($x*$b*$b/$a + cos(($x+$b)*($x+$b)) * cos(($x+$b)*($x+$b)));

$r = $x*$x*($x+$s)/($a*$b) - tan(pow($x,$a)) * tan(pow($x,$a));

//вывод результата в окно браузера

if ($x!='')

{

echo '<br>Результат вычислений:';

echo '<br>$s=', $s;

echo '<br>$r=', $r;

}

?>

</body>

</html>

  1. Компиляция, отладка, тестирование и получение результата:

Задания на лабораторную работу №1

Вариант 1

Ввести с консоли значения переменных x, y, z. Определить значения переменных a, b, c:

Вариант 2

Ввести с консоли значение переменной x. Определить значения переменных y, z:

где a=3,2×10-5

b=0,314159265×10-7

Вариант 3

Ввести с консоли значение переменной x. Определить значения переменных y, z:

где a=1,5×10-3

b=0,314159265×10-5

Вариант 4

Ввести с консоли значения переменных x, y, z. Определить значения переменных a, b, c:

Вариант 5

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Вариант 6

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Вариант 7

Ввести с консоли значения переменных x, y, z. Определить значения переменных a, b, c:

Вариант 8

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Вариант 9

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Вариант 10

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Вариант 11

Ввести с консоли значение переменной x. Определить значения переменных y, z:

где a=3,2×10-5

b=0,314159265×10-7

Вариант 12

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Вариант 13

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Вариант 14

Определить значения переменных a, b, c:

Вариант 15

Ввести с консоли значение переменной x. Определить значения переменных a, b, c:

Лабораторная работа № 2

Ветвления

Тема: Программирование алгоритмов с двумя формами ветвлений – альтернативой и переключателем.

Цель работы: Освоить программирование алгоритмов, включающих альтернативу и переключатель. Освоить методику тестирования программ.

Задание на лабораторную работу

  1. Получить задание в соответствии с номером своего варианта.

  2. Составить схему алгоритма решения задачи.

  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.

  4. Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования

  • в нормальных условиях,

  • при граничных условиях,

  • при некорректных входных данных,

  • по критерию покрытия решений – результат проверки каждого условия (if) принимал значение истина или ложь хотя бы один раз,

  • по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.

  1. Получить результат.

  2. Оформить отчет по лабораторной работе.