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

  • Исходные данные

  • Результирующие данные

  • Лабораторная работа №5. Конструкция условия switch/case. Работа со односвязными и двусвязными списками в C. Стек, очередь, дек Вариант 15 Номер зачётной книжки

  • Промежуточные данные

  • ComboBox , CheckedListBox , NumericUpDown и DomainUpDown , ListView , TreeView.

  • Лабораторная работа асд. Лабораторные работы_по_АСД. Дисциплина Алгоритмы и структуры данных Отчёт по лабораторной работе


    Скачать 3.09 Mb.
    НазваниеДисциплина Алгоритмы и структуры данных Отчёт по лабораторной работе
    АнкорЛабораторная работа асд
    Дата27.06.2022
    Размер3.09 Mb.
    Формат файлаdocx
    Имя файлаЛабораторные работы_по_АСД.docx
    ТипЛабораторная работа
    #616986
    страница4 из 9
    1   2   3   4   5   6   7   8   9


    Блок схема алгоритма решения задачи представлена на рисунке 25:



    Рисунок 24- Блок схема алгоритма решения задачи 5

    Программа на C#:

    using System;
    namespace ConsoleApp1

    {

    class Program

    {

    static void Main(string[] args)

    {

    Console.WriteLine("введите размерность массива");

    int n = int.Parse(Console.ReadLine());

    int m = int.Parse(Console.ReadLine());

    int[,] a = new int[n,m];

    Console.WriteLine("введите k");

    int k = int.Parse(Console.ReadLine());

    int[] y = new int[10];

    int z = 0;

    Random rand = new Random();

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

    {

    for (int j = 0; j < m; j++)

    {

    a[i,j] = rand.Next( 0, 10);

    Console.Write(" " + a[i,j]);

    }

    Console.WriteLine(" ");

    }

    Console.WriteLine("");

    for (int i = 0; i < n - 1; i++)

    {

    for (int j = 0; j < n - i - 1; j++)

    {

    if ((a[i, j] <= k) && (a[i, j] > i + j))

    {

    for (int v = 0; v <= n - m; v++)

    {

    y[v] = a[i, j];

    Console.Write(" " + y[v]);

    }

    }

    }

    }Console.WriteLine(' ');

    Console.ReadKey();

    }

    }

    }

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



    Рисунок 25 - Скриншот результата работы программы задачи 5.

    Задача 6.

    Дан массив A(11) и массив Р(6,6). В матрице Р(6,6) найти количество положительных элементов. Если количество положительных элементов больше 14, то массив А( 11) упорядочить по возрастанию.

    Все используемые идентификаторы представлены в таблице 14

    Таблица 14 – Идентификаторы

    Имя переменной

    Тип переменной

    Пояснение (возможные ограничения по входным данным, назначение)

    алгоритм

    программа

    Исходные данные

    A, y, z

    A, y, z

    int

    Массив

    Промежуточные данные

    I,j,z

    I,j,z

    int

    Промежуточные

    Результирующие данные

    t

    t

    int

    Отсортированный массив


    Блок схема алгоритма решения задачи представлена на рисунке 27:



    Рисунок 26- Блок схема алгоритма решения задачи 6

    Программа на C#:

    using System;
    namespace ConsoleApp1

    {

    class Program

    {

    static void Main(string[] args)

    {

    Console.WriteLine("введите размерность массива");

    int n = int.Parse(Console.ReadLine());

    int m = int.Parse(Console.ReadLine());

    int v = int.Parse(Console.ReadLine());

    int[,] a = new int[n,m];

    int[] y = new int[v];

    int z = 0;

    Random rand = new Random();

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

    {

    for (int j = 0; j < m; j++)

    {

    a[i,j] = rand.Next( 0, 10);

    Console.Write(" " + a[i,j]);

    }

    Console.WriteLine(" ");

    }

    Console.WriteLine("второй массив");

    for (int x = 0; x < v; x++)

    {

    y[x] = rand.Next(0, 10);

    Console.Write(" " + y[x]);

    }
    for (int i = 0; i < n; i++)

    {

    for (int j = 0; j < m; j++)

    {

    if (a[i,j] > 0)

    z += 1;

    }

    }

    Console.WriteLine(" ");

    if (z > 14)

    {

    Console.WriteLine("отсортированный массив");

    Array.Sort(y);

    for (int x = 0; x < v; x++)

    {

    Console.Write(" " + y[x]);

    }

    }

    Console.WriteLine(' ');

    Console.ReadKey();

    }

    }

    }

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



    Рисунок 27 - Скриншот результата работы программы задачи 6.

    Лабораторная работа №5. Конструкция условия switch/case. Работа со односвязными и двусвязными списками в C#. Стек, очередь, дек

    Вариант 15
    Номер зачётной книжки

    Задание

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

    2. Выполнить анализ работы алгоритмов при задании различных вариантов исходных данных и описать возможные ограничения по входным данным.

    3. Составить отчёт по выполненной лабораторной работе.
    Решение
    Задача 1.

    Вариант 1. Создать калькулятор со строкой ввода и кнопками +, -, *, /, = и кнопкой  стирания влево символа.

    Вариант 2. Создать калькулятор со строкой ввода и кнопками 0,1,…9, +, -, *, /, =.

    Все используемые идентификаторы представлены в таблице 15

    Таблица 15 – Идентификаторы

    Имя переменной

    Тип переменной

    Пояснение (возможные ограничения по входным данным, назначение)

    алгоритм

    программа

    Промежуточные данные

    I, count, lenght

    I, count, lenght

    int

    Промежуточные

    text

    text

    string

    Промежуточные

    Результирующие данные

    A, b

    A, b

    float

    Результат вычесления



    Блок схема алгоритма решения задачи представлена на рисунке 29:



    Рисунок 28- Блок схема алгоритма решения задачи 1

    Программа на C#:

    using System;

    using System.Windows.Forms;

    namespace WindowsFormsApp1

    {

    public partial class Form1 : Form

    {

    float a, b;

    int count;


    public Form1()

    {

    InitializeComponent();

    }
    private void button1_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 1;

    }
    private void button2_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 2;

    }
    private void button3_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 3;

    }
    private void button4_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 4;

    }
    private void button5_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 5;

    }
    private void button6_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 6;

    }
    private void button7_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 7;

    }
    private void button8_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 8;

    }
    private void button9_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 9;

    }
    private void button10_Click(object sender, EventArgs e)

    {

    textBox1.Text = textBox1.Text + 0;

    }
    private void button16_Click(object sender, EventArgs e)

    {

    int lenght = textBox1.Text.Length - 1;

    string text = textBox1.Text;

    textBox1.Clear();

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

    {

    textBox1.Text = textBox1.Text + text[i];

    }

    }
    private void button14_Click(object sender, EventArgs e)

    {

    a = float.Parse(textBox1.Text);

    textBox1.Clear();

    count = 4;

    }
    private void button13_Click(object sender, EventArgs e)

    {

    a = float.Parse(textBox1.Text);

    textBox1.Clear();

    count = 3;

    }
    private void button12_Click(object sender, EventArgs e)

    {

    a = float.Parse(textBox1.Text);

    textBox1.Clear();

    count = 1;

    }
    private void button15_Click(object sender, EventArgs e)

    {

    switch (count)

    {

    case 1:

    b = a + float.Parse(textBox1.Text

    textBox1.Text = b.ToString

    break;

    case 2:

    b = a - float.Parse(textBox1.Text);

    textBox1.Text = b.ToString();

    break;

    case 3:

    b = a * float.Parse(textBox1.Text);

    textBox1.Text = b.ToString();

    break;

    case 4:

    b = a / float.Parse(textBox1.Text);

    textBox1.Text = b.ToString();

    break;
    default:

    break;

    }

    }
    private void button11_Click(object sender, EventArgs e)

    {

    a = float.Parse(textBox1.Text);

    textBox1.Clear();

    count = 2;

    }

    }

    }

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



    Рисунок 29 - Скриншот результата работы программы задачи 1.

    Задача 2.

    Придумать и решить свою программу, используя элементы управления ComboBox, CheckedListBox, NumericUpDown и DomainUpDown, ListView, TreeView.

    Все используемые идентификаторы представлены в таблице 16

    Таблица 16 – Идентификаторы

    Имя переменной

    Тип переменной

    Пояснение (возможные ограничения по входным данным, назначение)

    алгоритм

    программа







    Исходные данные

    Name, Author, ID, Genre, Category, Additionally

    Book

    struct Book

    Данные о книге

    Результирующие данные

    books

    books

    List< Book >

    Список книг
    1   2   3   4   5   6   7   8   9


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