Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Й символ – это буква или цифра?
Если буква, то гласная или согласная? Если цифра, то четная или нечетная? Й символ – это буква или цифра? И так далее. Ответы: 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 –1 sb3> 3-5 z Выходные данные: a*bcd -& 19s3> 5z Вариант 13 Задание 1 Задана строка, в которой имеются цифры. Вывести на экран названия встретившихся цифр словами в порядке их следования.
Входные данные: a*b0cd -dc& 19a –1 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.
Для заполнения вектора целыми случайными числами в заданном диапазоне используется функция-генератор случайных чисел random(k), где k – целое число. Каждый раз при обращении к этой функции она будет вырабатывать целое число с равномерным распределением от 0 до k-1. Для сдвига диапазона случайных чисел в нужную сторону можно использовать следующее обращение к этой функции: random(v_max – v_min + 1) + v_min. Поиск максимального элемента вектора осуществляется следующим образом. Перед началом поиска за максимальный элемент вектора max принимается его первый элемент: max=vector1. Далее каждый следующий элемент вектора vectori, начиная со второго, сравнивается с максимальным элементом: если он больше максимального, то сейчас он – максимальный элемент вектора: max=vectori. Поиск минимального элемента осуществляется аналогично. В процессе поиска индексы максимального и минимального элементов ( i_max, i_min ) запоминаются. После окончания поиска, найденные максимальный и минимальный элементы меняются местами.
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; 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; } 3.3. На языке Java: package javaapplication6_1; // Импорт библиотеки графических компонентов Swing import javax.swing.*; import java.util.*; public class JavaApplication6_1 // задание нового класса { // описание главного метода main этого класса public static void main(String[] args) { //описание переменных: // целого типа int n, vector_min, vector_max, min, max, i_min, i_max; String input, text; // строк класса String //консольный вывод System.out.println(" Лабораторная работа №6-1" ); System.out.println(" Вариант №0" ); System.out.println(" ПО-11-1" ); System.out.println(" Пупкин Василий" ); System.out.println(); // вызов диалогового окна ввода исходных данных input=JOptionPane.showInputDialog(" Нижняя граница диапазона vector_min: " ); // преобразование из строкового значения в целое vector_min=Integer.parseInt(input); input=JOptionPane.showInputDialog(" Верхняя граница диапазона vector_max: " ); vector_max=Integer.parseInt(input); input=JOptionPane.showInputDialog(" Размер вектора n: " ); n=Integer.parseInt(input); // формирование строки вывода text=" Значения входных переменных: \nvector_min=" + vector_min + " \nvector_max=" + vector_max + " \nn=" + n; // вызов диалогового окна эхо-печати JOptionPane.showMessageDialog(null, text); //консольный вывод System.out.printf(" vector_min=%d\nvector_max=%d\nn=%d\n", vector_min, vector_max, n); // создание вектора длиной n элементов int vector[]=new int[n]; //консольный вывод System.out.println(); System.out.println(" Исходный вектор: " ); // создание объекта Rand класса Random - генератора случ. чисел // инициализация генератора случайных чисел, // привязка его к системному времени Random Rand=new Random(); // формирование вектора случайным образом for (int i=0; i< n; i++) { // получение очередного случайного числа в диапазоне // от vector_min до vector_max vector[i]=Rand.nextInt(vector_max-vector_min+1) + vector_min; //консольный вывод элемента вектора System.out.printf(" %5d", vector[i]); } //консольный вывод System.out.println(); // вычисления по заданному алгоритму // максимальное и минимальное значения- // начальные элементы вектора max = vector[0]; i_max = 0; min = vector[0]; i_min = 0; // поиск минимального и максимального элементов вектора // и их индексов for (int 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; } } //консольный вывод System.out.printf(" \nmax=%d i_max=%d", max, i_max); System.out.printf(" \nmin=%d i_min=%d\n", min, i_min); //меняем местами max и min элементы вектора vector[i_max] = min; vector[i_min] = max; //консольный вывод вектора System.out.println(); System.out.println(" Выходной вектор: " ); for (int i=0; i< n; i++) System.out.printf(" %5d", vector[i]); System.out.println(); } } 3.4. На языке PHP: <! DOCTYPE html> < html> < head> < meta http-equiv=" Content-Type" content=" text/html; charset=UTF-8" > < title> Лабораторная работа №6_1 < /title> < /head> < body BgColor=" silver" text=" blue" > < H2> Лабораторная работа №6_1< /h2> < H3> Массивы< /h3> Вариант №0 < br> ПО-11-1 < br> Пупкин Василий < br> < br> < Form name=" LabRab_6_1" action=" " method=" POST" > Нижняя граница диапазона vector_min: < br> < input type=" text" name=" vector_min" size=" 5" > < br> Верхняя граница диапазона vector_max: < br> < input type=" text" name=" vector_max" size=" 5" > < br> Размер вектора n: < br> < input type=" text" name=" n" size=" 5" > < br> < input type=" submit" value=" Вычислить" > < br> < /form> <? php // получение значения переменной из формы $vector_min=$_POST['vector_min']; $vector_max=$_POST['vector_max']; $n=$_POST['n']; if (($n! ='') & & ($vector_min! ='') & & ($vector_max! ='')) { //эхо-печать echo " < br> n=$n"; echo " < br> vector_min=$vector_min"; echo " < br> vector_max=$vector_max< br> "; // инициализация генератора случайных чисел mt_srand(time()); // заполнение вектора целыми случайными числами // от vector_min до vector_max for ($i=0; $i< $n; $i++) $vector[$i]=mt_rand($vector_min, $vector_max); // вывод исходного вектора на экран echo '< br> Исходный вектор: < br> '; foreach($vector as $index=> $value) { echo " $index=> $value"; echo '< br> '; } // определяем минимальный и максимальный // элементы вектора // пока это начальный элемент массива $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; } } // вывод найденных элементов // и их индексов на экран echo " < br> i_max=$i_max max=$max"; echo " < br> i_min=$i_min min=$min"; echo '< br> '; //меняем местами max и min //элементы вектора $vector[$i_max] = $min; $vector[$i_min] = $max; // вывод выходного вектора на экран echo '< br> Выходной вектор: < br> '; foreach($vector as $index=> $value) { echo " $index=> $value"; echo '< br> '; } echo '< br> '; } ? > < /body> < /html>
Задание 2. 1. Заполнить квадратный массив massivnn целыми случайными числами в диапазоне от v_min до v_max. Поменять местами главную и побочную диагонали массива. Размер массива n задать константой. Границы диапазона v_min и v_max задать с консоли. Вывести на экран исходный и полученный массивы. Элементы главной диагонали квадратного массива имеют одинаковые индексы: massivii (i=1…n). Соответствующие им построчно элементы побочной диагонали имеют индексы massivi, n-i+1 . Меняем их местами алгоритмом циклического обмена через третью переменную.
2. Схема алгоритма решения задачи: 3. Код программы
3.1. На языке Паскаль:
Program Variant_0; Uses WinCrt; Const n = 5; {задание размера массива именованной константой} Var i, j: Word; k, v_min, v_max: Integer; massiv: Array [1..n, 1..n] Of Integer; Begin Randomize; {запуск генератора случайных чисел} WriteLn('Лабораторная работа №6_2'); 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 {заполнение массива случайными числами} For j: =1 To n Do massiv[i, j]: =Random(v_max-v_min + 1) + v_min; WriteLn; WriteLn('Исходный массив: '); For i: =1 To n Do {вывод на экран исходного массива} Begin For j: =1 To n Do Write(massiv[i, j]: 5); WriteLn; End; WriteLn; For i: =1 To n Do {меняем местами соответствующие элементы} Begin {главной и побочной диагоналей} k: =massiv[i, i]; massiv[i, i]: =massiv[i, n-i+1]; massiv[i, n-i+1]: =k; End; WriteLn; WriteLn('Полученный массив: '); For i: =1 To n Do {вывод на экран полученного массива} Begin For j: =1 To n Do Write(massiv[i, j]: 5); WriteLn; End; WriteLn; End. 3.2. На языке Си:
#include < stdio.h> #include < conio.h> #include < math.h> #include < time.h> Int main() { int i, j, n, m, massiv_min, massiv_max, temp; time_t t; // текущее время для инициализации // генератора случайных чисел srand((unsigned) time(& t)); // инициализация генератора // случайных чисел printf(" \nЛабораторная работа №6_2" ); printf(" \nВариант №0" ); printf(" \nПО-11-1" ); printf(" \nПупкин Василий\n" ); printf(" \nВведите нижнюю границу диапазона: " ); scanf(" %d", & massiv_min); printf(" \nВведите верхнюю границу диапазона: " ); scanf(" %d", & massiv_max); printf(" \nВведите размер массива: " ); scanf(" %d", & n); int massiv[n][n]; printf(" \nИсходный массив: \n" ); m = massiv_max-massiv_min + 1; for (i=0; i< n; i++) { // получение случайного числа в диапазоне // от vector_min до vector_max for (j=0; j< n; j++) { massiv[i][j]=rand()% m + massiv_min; printf(" %5d", massiv[i][j]); } printf(" \n" ); } printf(" \n" ); for (i=0; i< n; i++) //меняем местами соответствующие элементы { //главной и побочной диагоналей temp = massiv[i][i]; massiv[i][i] = massiv[i][n-i-1]; massiv[i][n-i-1] = temp; } printf(" \nВыходной массив: \n" ); for (i=0; i< n; i++) { for (j=0; j< n; j++) printf(" %5d", massiv[i][j]); printf(" \n" ); } printf(" \n" ); return 0; } 3.3. На языке Java:
package javaapplication6_2; // Импорт библиотеки графических компонентов Swing import javax.swing.*; import java.util.*; public class JavaApplication6_2 // задание нового класса { // описание главного метода main этого класса public static void main(String[] args) { //описание переменных int n, massiv_min, massiv_max, temp; // целого типа Популярное:
|
Последнее изменение этой страницы: 2017-03-11; Просмотров: 956; Нарушение авторского права страницы