номер начального пробела:2




номер конечного пробела:4

Выходные данные:

-l sb3>

Вариант 10

Задание 1

В заданной строке, состоящей из нескольких слов, разделенных пробелами, оставить по одному пробелу между словами. Предусмотреть случай, когда в строке пробелов нет.

 

Входные данные:

a*bc -&19 -l sb3> 4-5 z%x

Выходные данные:

a*bc -&19 -l sb3> 4-5 z%x

 

Задание 2

Вывести все 4-х символьные сочетания, состоящие из символов заданной строки, удовлетворяющие заданным правилам их формирования. Правила задать с терминала для каждого i -го символа (i=1,…,4):

й символ – это буква или цифра?

Если буква, то гласная или согласная?

Если цифра, то четная или нечетная?

й символ – это буква или цифра?

И так далее.

Ответы: 1 – да, 0 – нет.

Использованный символ строки далее в новые сочетания не входит.

 

Входные данные:

Ab1e2c03ik5

й символ – буква:1

гласная:1

й символ – буква:0

четная:1

й символ – буква:1

гласная:0

й символ – буква:0

четная:0

Выходные данные:

A2b1

E0c3

Вариант 11

Задание 1

Строка состоит из нескольких слов, разделенных пробелом. Определить минимальное количество первых символов слов, по которым можно различить слова в строке.

 

Входные данные:

Abc5 abc0 abcde abcfg

Выходные данные:

Задание 2

В заданной строке переставить слова по возрастанию их длины.

 

Входные данные:

a*bcd -&19 –l sb3> 4-5 z

Выходные данные:

z -1 4-5 -&19 sb3> a*bcd

Вариант 12

Задание 1

Строка состоит из натуральных чисел, разделенных пробелом, и диапазонов чисел (начальное число-тире-конечное число). Удалить из строки все числа, входящие в эти диапазоны. Оставшиеся числа вывести на экран по возрастанию (диапазоны не выводить).

 

Входные данные:

15 9 2 5 3-6 1 3 7-10

Выходные данные:

1 2 15

Задание 2

Удалить из строки все повторения символов. Рабочие строки не использовать.

 

Входные данные:

a*b*cd -dc&19a –l sb3> 3-5 z

Выходные данные:

a*bcd -&19s3>5z

Вариант 13

Задание 1

Задана строка, в которой имеются цифры. Вывести на экран названия встретившихся цифр словами в порядке их следования.

 

Входные данные:

a*b0cd -dc&19a –l sb3> 3-5 z

Выходные данные:

ноль

один

девять

один

три

три

пять

 

Задание 2

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

 

Входные данные:

512 256 32 1024 128 16

Выходные данные:

count=5

Вариант 14

Задание 1

Задана строка, в которой имеются наименования цифр. Вывести на экран эти цифры в порядке их следования.

 

Входные данные:

a*twob0fivecd -onedc&tnine19a –sixl sb3> 3-5 z

Выходные данные:

 

Задание 2

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

 

Входные данные:

512 256 32 1024 128 16

Выходные данные:

Вариант 15

Задание 1

Задана строка, представляющая собой уравнение с одним неизвестным в следующем формате:

ax+b=c

где a, b и с – целые числа, положительные или отрицательные. Определить значение неизвестного x.

 

Входные данные:

5x-3=7

Выходные данные:

x=2

Задание 2

Строка состоит только из букв. Переставить их так, чтобы гласные и согласные чередовались. Оставшиеся лишними гласные или согласные переместить в конец строки. Рабочие строки не использовать.

 

Входные данные:

Abcdefghiokl

Выходные данные:

Abecidofghkl

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

Массивы

Тема: Программирование алгоритмов работы с массивами.

Цель работы: Освоить основные алгоритмы работы с одномерными и многомерными массивами.Освоить методы тестирования программ.

 

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

  1. Получить задание в соответствии с номером своего варианта.
  2. Составить схему алгоритма решения задачи.
  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
  4. Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования

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

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

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

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

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

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

 

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

Задание 1.

  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) запоминаются.

После окончания поиска, найденные максимальный и минимальный элементы меняются местами.

 

 

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

 

 

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

 

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

 

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.

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

#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;



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: