Лаб работа по информатике. Отчет по лабораторной работе №2. Лабораторная работа 2 по дисциплине Программирование Вариант 13 Выполнил студент Закарин Артур Эльдарович курс 1, семестр 1
Скачать 15.29 Kb.
|
Министерство науки и высшего образования РФ Федеральное государственное бюджетное образовательное учреждение высшего образования ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра компьютерных систем в управлении и проектировании (КСУП) ОТЧЕТ Лабораторная работа № 2 по дисциплине «Программирование» Вариант № 13 Выполнил студент: Закарин Артур Эльдарович курс 1, семестр 1 Группа з-430П10-1 специальность Программирование 2021 г. Лабораторная работа № 2 посвящена созданию программ с исполь-зованием массивов (одномерных и матриц) и множеств. В этих программах полезно использовать подпрограммы. Задание состоит из двух задач, требующих написания программ на языке Паскаль. Программы должны быть написаны в рамках структурного программирования. В частности, запрещается использовать операторы пе-рехода и метки. Задача 1 var A : array [1..n,1..n] of real; Найти сумму элементов из области матрицы А, отмеченной символом '*' (диагонали входят в выделенную область): * * * * * * * 0 * * * * * 0 0 0 * * * 0 0 Решение: const nmax=20; var a: array[1..nmax,1..nmax] of integer; n,i,j: integer; s: real; begin writeln('Введите размер матрицы: '); readln(n); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(9)+1; if ((i<=j)and(i+j<=n+1)) or((i>=j)and(i+j>=n+1)) then s:=s+a[i,j]; write(a[i,j]:2); end; writeln; end; writeln; writeln('Сумма элементов массива из области = ',s); readln; end. Задача 2 Дана строка. В алфавитном порядке напечатайте (по разу) все малые латинские буквы, входящие в эту строку ровно два раза. Указание: решение задачи простое, если вы будете использо-вать множества. Заведите три множества X1, X2 и X3 (сначала эти множества пустые). И в цикле просмотрите все символы из введенной строки. С каждым символом — маленькой латинской буквой — выполняйте следующие действия: 1. Если этого символа нет в X1, то поместите его туда (после окончания цикла множество X1 содержит все символы из строки). 2. Если этот символ есть в X1 и нет в X2, то поместите этот символ в X2 (после окончания цикла множество X2 содержит все символы из строки, которые там встречаются более одного раза). 3. Если этот символ есть в X1 и в X2, то поместите этот символ в X3 (после окончания цикла множество X3 со-держит все символы из строки, которые там встреча-ются более двух раз). После окончания цикла распечатайте в алфавитном порядке все элементы из разности множеств X2–X3. Это будет ответ. (Используйте цикл for c:=’a’ to ‘z’ do если c входит в X2–X3, то печать c. ) Решение: uses crt; var s: string; i: byte; c: char; x1,x2,x3: set of char; begin x1:=[]; x2:=[]; x3:=[]; write('s='); readln(s); for i:=1 to length(s) do if s[i] in ['a'..'z'] then begin if not (s[i] in x1) then x1:=x1+[s[i]] else if not (s[i] in x2) then x2:=x2+[s[i]] else x3:=x3+[s[i]]; end; x3:=x2-x3; for c:='a' to 'z' do if c in x3 then write(c,' '); readln; end. |