- •В.А. Лучников программирование на языках высокого уровня. Методические указания по выполнению лабораторных работ
- •Содержание
- •Лабораторная работа № 1 Выражения и операторы присваивания
- •Задание на лабораторную работу
- •Пример оформления работы
- •Задания на лабораторную работу №1
- •Пример оформления работы
- •Задания на лабораторную работу №2
- •Пример оформления работы
- •Int n; // целого типа
- •Задания на лабораторную работу №3
- •Пример оформления работы Задание 1.
- •Int n; // целого типа
- •Задание 2.
- •Int a, a1, a2, k, n, s; //описание переменных
- •Int a, a1, a2, n, s; // целого типа
- •Задания на лабораторную работу №4
- •Пример оформления работы
- •If (c In ['0'..'9']) Then {если очередной элемент - цифра}
- •Val(s,k,error); {преобразуем строку в число}
- •Задания на лабораторную работу №5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 6 Массивы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Int n, vector_min, vector_max, min, max, i_min, i_max; String input, text; // строк класса String
- •Задание 2.
- •Int n, massiv_min, massiv_max, temp; // целого типа
- •Задания на лабораторную работу №6
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Лабораторная работа № 7 Подпрограммы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №7
- •Вариант 1
- •Вариант 15
- •Лабораторная работа № 8 Файлы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №8
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 9 Рекурсия
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №9
Вариант 14
Задание 1
Задана строка, в которой имеются наименования цифр. Вывести на экран эти цифры в порядке их следования.
Входные данные:
a*twob0fivecd -onedc&tnine19a –sixl sb3> 3-5 z
Выходные данные:
2
5
1
9
6
Задание 2
Строка состоит из натуральных чисел, разделенных пробелом. Определить цифры, не входящие ни в одно их этих чисел.
Входные данные:
512 256 32 1024 128 16
Выходные данные:
7
9
Вариант 15
Задание 1
Задана строка, представляющая собой уравнение с одним неизвестным в следующем формате:
ax+b=c
где a, bис– целые числа, положительные или отрицательные. Определить значение неизвестногоx.
Входные данные:
5x-3=7
Выходные данные:
x=2
Задание 2
Строка состоит только из букв. Переставить их так, чтобы гласные и согласные чередовались. Оставшиеся лишними гласные или согласные переместить в конец строки. Рабочие строки не использовать.
Входные данные:
abcdefghiokl
Выходные данные:
abecidofghkl
Лабораторная работа № 6 Массивы
Тема: Программирование алгоритмов работы с массивами.
Цель работы: Освоить основные алгоритмы работы с одномерными и многомерными массивами.Освоить методы тестирования программ.
Задание на лабораторную работу
Получить задание в соответствии с номером своего варианта.
Составить схему алгоритма решения задачи.
Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования
в нормальных условиях,
при граничных условиях,
при некорректных входных данных,
по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз,
по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.
Получить результат.
Оформить отчет по лабораторной работе.
Пример оформления работы Задание 1.
Заполнить одномерный массив (вектор) vectorn целыми случайными числами в диапазоне от v_min до v_max. Найти в нем минимальный min и максимальный max элементы и поменять их местами. Размер вектора n задать константой. Границы диапазона v_min и v_max задать с консоли. Вывести на экран исходный вектор, найденные минимальный и максимальный элементы и их индексы, а также полученный вектор.
Для заполнения вектора целыми случайными числами в заданном диапазоне используется функция-генератор случайных чисел random(k), где k – целое число. Каждый раз при обращении к этой функции она будет вырабатывать целое число с равномерным распределением от 0 до k-1. Для сдвига диапазона случайных чисел в нужную сторону можно использовать следующее обращение к этой функции:
random(v_max – v_min + 1) + v_min.
Поиск максимального элемента вектора осуществляется следующим образом. Перед началом поиска за максимальный элемент вектора max принимается его первый элемент: max=vector1. Далее каждый следующий элемент вектора vectori, начиная со второго, сравнивается с максимальным элементом: если он больше максимального, то сейчас он – максимальный элемент вектора: max=vectori. Поиск минимального элемента осуществляется аналогично. В процессе поиска индексы максимального и минимального элементов (i_max, i_min) запоминаются.
После окончания поиска, найденные максимальный и минимальный элементы меняются местами.
Схема алгоритма решения задачи:
Код программы
На языке Паскаль:
Program Variant_0;
Uses WinCrt;
Const n = 10; {задание размера вектора именованной константой}
Var i, v_min, v_max, i_max, max, i_min, min : Integer;
vector : Array [1..n] Of Integer;
Begin
Randomize; {запуск генератора случайных чисел}
WriteLn('Лабораторная работа №6_1');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
WriteLn('Задайте диапазон случайных чисел');
Write(‘v_min=’);
ReadLn(v_min);
Write(‘v_max=’);
ReadLn(v_max);
For i:=1 To n Do {заполнение вектора случайными числами}
vector[i]:=Random(v_max-v_min + 1) + v_min;
WriteLn;
WriteLn('Исходный вектор:');
For i:=1 To n Do {вывод на экран исходного вектора}
Write(vector[i]:5);
WriteLn;
max:= vector[1]; {пока макс элемент – первый элемент вектора}
i_max:= 1;
min:= vector[1]; {пока мин элемент – первый элемент вектора}
i_min:= 1;
For i:=2 To n Do {поиск начинаем со второго элемента}
Begin
If (vector[i] > max) Then {если очередной элемент больше} {текущего максимального}
Begin
max := vector[i]; {то максимальным элементом}
i_max := i; {становится очередной элемент} {вектора}
End;
If (vector[i] < min) Then {если очередной элемент меньше} {текущего минимального}
Begin
min := vector[i]; {то минимальным элементом}
i_min := i; {становится очередной элемент} {вектора}
End;
End;
WriteLn;
WriteLn(‘max=’, max, ‘ i_max=’, i_max);
WriteLn(‘min=’, min, ‘ i_min=’, i_min);
vector[i_max]:=min; {меняем местами макс и мин элементы}
vector[i_min]:=max; {в векторе}
WriteLn;
WriteLn('Полученный вектор:');
For i:=1 To n Do {вывод на экран полученного вектора}
Write(vector[i]:5);
WriteLn;
End.
На языке Си:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <time.h>
int main()
{
int i, n, m, vector_min, vector_max, min, max, i_min, i_max;
time_t t; // текущее время для инициализации
// генератора случайных чисел
srand((unsigned) time(&t)); // инициализация генератора
// случайных чисел
printf("\nЛабораторная работа №6_1");
printf("\nВариант №0");
printf("\nПО-11-1");
printf("\nПупкин Василий\n");
printf("\nВведите нижнюю границу диапазона:");
scanf("%d", &vector_min);
printf("\nВведите верхнюю границу диапазона:");
scanf("%d", &vector_max);
printf("\nВведите размер вектора:");
scanf("%d", &n);
int vector[n];
printf("\nИсходный вектор:\n");
m = vector_max-vector_min + 1;
for (i=0; i<n; i++)
{
// получение случайного числа в диапазоне
// от vector_min до vector_max
vector[i]=rand()% m + vector_min;
printf(" %5d", vector[i]);
}
printf("\n");
max = vector[0];
i_max = 0;
min = vector[0];
i_min = 0;
for (i=1; i<n ; i++)
{
if (vector[i] > max)
{
max = vector[i];
i_max = i;
}
if (vector[i] < min)
{
min = vector[i];
i_min = i;
}
}
printf("\nmax=%d i_max=%d", max, i_max);
printf("\nmin=%d i_min=%d\n", min, i_min);
vector[i_max] = min; //меняем местами max и min
vector[i_min] = max; //элементы вектора
printf("\nВыходной вектор:\n");
for (i=0; i<n; i++)
printf(" %5d", vector[i]);
printf("\n");
return 0;
}
На языке Java:
package javaapplication6_1;
// Импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication6_1 // задание нового класса
{
// описание главного метода main этого класса
public static void main(String[] args)
{
//описание переменных:
// целого типа