Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОП5

.docx
Скачиваний:
0
Добавлен:
29.06.2023
Размер:
122.51 Кб
Скачать

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

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

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

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

Кафедра безопасности информационных систем (БИС)

Обработка символов и структур

Лабораторная работа №5 по дисциплине «Основы программирования»

Отчет по лабораторной работе

Студент гр. 739-1

_______Климанов М. Д.

16.05.2020

Принял

Доцент кафедры БИС

_______Харченко С.С.

16.05.2020

Томск 2020

1 Введение

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

Задание 1 Составить программу, которая проверяет правописание << ча - ща >> (т.е. если в заданном тексте после << ч >> или << щ >> встретится << я >>, то программа должна выдавать сообщение об ошибке).

Задание 2: Багаж пассажира, характеризуется количеством вещей ( целый тип ) и общим весом вещей (вещественный тип). Дан список из сведений о багаже 10 пассажиров. Число пассажиров, количество вещей которых превосходит среднее число вещей по всему списку

2 Теоретические сведения

2.1 Обработка символов

Для описания символьных переменных служит тип char, соответственно массив символов можно объединить в строку. Для представления строк служит тип string. Но для начала рассмотрим работу просто с отдельными символами. Зна-чение символьной переменной может быть задано как с помощью команды присваивания так и с помощью команды ввода.

Символы в также имеют коды. Для получения цифрового кода символа достаточно применить операцию перевода в целые: (int) c, где с – символьная переменная. Для получения по коду самого символа достаточно применить операцию по переводу целых в символьные (char) k, где k – целое число (код символа).

Управляющие символы – это символы, встраиваемые в текст, для управления форматом, цветом и другими опциями вывода в текстовом терминале.

Таблица основных управляющих символов представлена ниже.

Таблица 1. Список основных управляющих символов.

\'

одинарная кавычка

\"

двойная кавычка

\?

вопросительный знак

\\

обратная косая черта

\0

нулевой символ

\a

звуковой сигнал

\b

символ возврата на один символ назад ("забой")

\f

перевод страницы - новая страница

\n

перевод строки - новая строка

\r

возврат каретки

\t

горизонтальная табуляция

\v

вертикальная табуляция

2.2 СТРУКТУРЫ

Одна из особенностей языка С# – это возможность создавать данные новых типов. Причем, данные нового типа могут быть комбинацией данных различного типа. Такие данные называют структурами. А затем новый струк-турный тип, как обычно, можно использовать для объявления новых перемен-ных. Доступ к отдельным элементам структуры осуществляется операцией «.» (точка). Тип структуры представляет собой тип значения, который может ин-капсулировать данные и связанные функции. Для определения типа структуры используется ключевое слово struct. Например, мы создадим структуру типа Coordinates(координаты) и определим для нее функцию, которая позволяет комфортно представлять ее при выводе на экран

Заметим, что в качестве поля структуры может быть в свою очередь структура. Кроме того, из структур можно формировать и массивы. В качестве одного из элементов структуры может быть массив. Кроме того, над структур-ными переменными можно выполнять операции как над едиными объектами (присваивать одной структурной переменной другую, сравнивать их и т.д.), но только в том случае, если структурные переменные однотипны, т.е. описаны на основе одного структурного типа. При сравнении структуры по умолчанию будут считаться равными если равны значения всех их полей.

3 Ход работы

Задание 1 Составить программу, которая проверяет правописание << ча – ща >> (т.е. если в заданном тексте после << ч >> или << щ >> встретится << я >>, то программа должна выдавать сообщение об ошибке).

Для начала составим Алгоритм А:

А1. Вводим текст

А2. Присваиваем массив 1024

А3. for (int i = 0; i < 1024; i++)

А4. Проверяем правильность написания

А5. Если стоит буква ч, щ, Ч, Щ, то за ней проверяем буку, если я, то

А6. Выводим Грамматическая ошибка, После символа под номером

А7. Если а или другая, то

А8. Всё верно

Затем составим блок-схему, изображенную на рисунке 3.1.

Реализация данного алгоритма на языке C# представлена в приложении 1.

Результат работы программы представлен на рисунке 3.2.

Рисунок 3.2 Результат работы программы

Задание 2: Багаж пассажира, характеризуется количеством вещей ( целый тип ) и общим весом вещей (вещественный тип). Дан список из сведений о багаже 10 пассажиров. Число пассажиров, количество вещей которых превосходит среднее число вещей по всему списку

Результат работы программы представлен на рисунке 3.4.

Рисунок 3.4 — Результат работы программы

4 Заключение

В результате выполнения лабораторной работы были получены навыками использования обработки символов и структур в программировании. Отчет оформлен согласно ОС ТУСУР.

5 Литература

  1. Харченко С.С. Основы программирования (учебно-методическое пособие). 2020г.

6 Приложение 1

using System;

namespace ЛАба_5_1

{

class Program

{

static char[] readChars()

{

var text = new char[1024];

for (int i = 0; i < 1024; i++)

{

text[i] = Console.ReadKey().KeyChar;

if (text[i] == 13)

break;

}

Console.WriteLine();

return text;

}

static void Main()

{

Console.WriteLine("Введите текст для проверки:");

var text = readChars();

bool is_wrong = false;

for (int i = 0; i < text.Length - 1 && text[i] != 13; i++)

{

if ((text[i] == 'ч' || text[i] == 'щ' || text[i] == 'Ч' || text[i] == 'Щ') && text[i + 1] == 'я' || text[i + 1] == 'Я')

{

Console.WriteLine("Грамматическая ошибка!");

Console.Write("После символа под номером ");

Console.Write(i + 1);

Console.WriteLine(" должна идти буква а!");

is_wrong = true;

}

}

if (is_wrong == false)

Console.WriteLine("Всё верно!");

Console.ReadKey();

}

}

}

7 Приложение 2

using System;

namespace Лаба_5_2

{

class Program

{

struct baggage

{

public int count;

public float weight;

}

static void Main(string[] args)

{

var baggages = new baggage[10];

float average = 0;

for (int i = 0; i < 10; i++)

{

bool success = true;

Console.Write("Введите кол-во багажа, пассажира с номером: ");

Console.WriteLine(i + 1);

success = Int32.TryParse(Console.ReadLine(), out baggages[i].count);

if (!success)

Console.WriteLine("Ошибка ввод количества багажа!");

Console.Write("Введите общий вес багажа, пассажира с номером: ");

Console.WriteLine(i + 1);

success = float.TryParse(Console.ReadLine(), out baggages[i].weight);

if (!success)

Console.WriteLine("Ошибка ввод веса багажа!");

Console.Write("\n\n");

average += baggages[i].count;

}

average /= 10;

Console.Write("Среднее кол-во багажа: ");

Console.WriteLine(average);

int count = 0;

for (int i = 0; i < 10; i++)

{

if (baggages[i].count > average)

{

count++;

}

}

Console.Write("Число пасажиров превысивших среднее кол-во багажа: ");

Console.WriteLine(count);

Console.ReadKey();

}

}

}

Соседние файлы в предмете Основы программирования