Skip to content

Roman-Samoilenko/Lab1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 

Repository files navigation

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

№ группы: ПМ-2401

Выполнил: Самойленко Роман Алексеевич

Вариант: 24

Cодержание:

1. Постановка задачи

  • Условия задачи

На вход программы подается четыре различных целых числа. Вывести на экран число, которое меньше одного и больше двух других чисел (то есть, это число в отсортированной последовательности стояло бы третьим).

  • Требуется получить на вход четыре числа и вывести число, которое стояло бы третьим в отсортированном списке из полученных чисел

    2. Входные и выходные данные

Входные данные:

  • четыре целых числа
  • диапазон значений не задан

Выходные данные:

  • одно целое число
  • диапазон значений не задан

3. Выбор структуры данных

Целое число, у которого не задана верхняя граница. Лучше всего подходит long, т.к. этот тип данных имеет самый большой диапазон значений.

4. Алгоритм

  1. Запись четырёх чисел в переменные n1, n2, n3, n4.
  2. Инициализация булевой переменной "f".
  3. Проверяю, является ли текущее "n" ответом.
  4. Если условие задачи выполняется, f = true.
  5. Если f, то вывести "n".
  6. Повтор алгоритма для следующего "n".
  7. Если "n1", "n2", "n3" не подходят, вывести "n4".
graph TD
    A[Начало] --> B[Считать n1, n2, n3, n4]
    B --> C{Проверка n1}
    C -->|n1 > n2 и n1 > n3 и n1 < n4| D[Вывести n1]
    C -->|n1 > n4 и n1 > n3 и n1 < n2| D
    C -->|n1 > n4 и n1 > n2 и n1 < n3| D
    C --> E{Проверка n2}
    E -->|n2 > n1 и n2 > n3 и n2 < n4| F[Вывести n2]
    E -->|n2 > n4 и n2 > n3 и n2 < n1| F
    E -->|n2 > n4 и n2 > n1 и n2 < n3| F
    E --> G{Проверка n3}
    G -->|n3 < n1 и n3 > n2 и n3 > n4| H[Вывести n3]
    G -->|n3 < n4 и n3 > n2 и н3 > н1| H
    G -->|n3 < н2 и н3 > н1 и н3 > н4| H
    G --> I[Вывести n4]
    D --> J[Конец]
    F --> J
    H --> J
    I --> J
Loading

5. Программа

import java.util.Scanner;
import java.io.PrintStream;

public class Main {
    public static Scanner in = new Scanner(System.in);
    public static PrintStream out = System.out;

    public static void main(String[] args) {
        long n1 = in.nextLong();
        long n2 = in.nextLong();
        long n3 = in.nextLong();
        long n4 = in.nextLong();

        // Проверяем, является ли n1 подходящим
        boolean f = false;
        if (n1 > n2 && n1 > n3 && n1 < n4) {
            f = true;
        } else if (n1 > n4 && n1 > n3 && n1 < n2) {
            f = true;
        } else if (n1 > n4 && n1 > n2 && n1 < n3) {
            f = true;
        }

        // Если n1 подходит, выводим его
        if (f) {
            out.println(n1);
        }
        // Проверяем, является ли n2 подходящим
        else {
            if (n2 > n1 && n2 > n3 && n2 < n4) {
                f = true;
            } else if (n2 > n4 && n2 > n3 && n2 < n1) {
                f = true;
            } else if (n2 > n4 && n2 > n1 && n2 < n3) {
                f = true;
            }

            // Если n2 подходит, выводим его
            if (f) {
                out.println(n2);
            }
            // Проверяем, является ли n3 подходящим
            else {
                if (n3 < n1 && n3 > n2 && n3 > n4) {
                    f = true;
                } else if (n3 < n4 && n3 > n2 && n3 > n1) {
                    f = true;
                } else if (n3 < n2 && n3 > n1 && n3 > n4) {
                    f = true;
                }

                // Если ни одно из предыдущих условий не выполнено, выводим н4
                if (f) {
                    out.println(n3);
                } else {
                    out.println(n4);
                }
            }
        }
    }
}

6. Анализ правильности решения

  1. Тест
  • Input:

    3
    2
    1
    4
    
  • Output:

    3
    
  1. Тест
  • Input:

    1
    3
    2
    4
    
  • Output:

    3
    
  1. Тест
  • Input:

    1
    2
    3
    4
    
  • Output:

    3
    
  1. Тест
  • Input:

    1
    2
    4
    3
    
  • Output:

    3
    

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages