Главная страница
Навигация по странице:

  • ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

  • Лаб работа по информатике. Отчет по лабораторной работе №2. Лабораторная работа 2 по дисциплине Программирование Вариант 13 Выполнил студент Закарин Артур Эльдарович курс 1, семестр 1


    Скачать 15.29 Kb.
    НазваниеЛабораторная работа 2 по дисциплине Программирование Вариант 13 Выполнил студент Закарин Артур Эльдарович курс 1, семестр 1
    АнкорЛаб работа по информатике
    Дата02.10.2022
    Размер15.29 Kb.
    Формат файлаdocx
    Имя файлаОтчет по лабораторной работе №2.docx
    ТипЛабораторная работа
    #710197

    Министерство науки и высшего образования РФ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

    Кафедра компьютерных систем в управлении и проектировании (КСУП)

    ОТЧЕТ

    Лабораторная работа № 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.


    написать администратору сайта