М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
volkovaolga75
volkovaolga75
09.02.2023 01:56 •  Информатика

Создать класс Train, содержащий поля :
название пункта назначения
номер поезда
время отправления
Вести данные в массив из 5 элементов типа Train, упорядочить элементы по номерам поездов. Добавить возможность ввода информации о поезде, номер которого введен пользователем. Добавить возможность сортировки массива по пункту назначения, причем поезда с одинаковыми пунктами назначения должны быть упорядочены по времени отправления.
Ввод вывод информации осуществить с клавиатуры используя формы

👇
Ответ:
Gen04
Gen04
09.02.2023

Объяснение:

#include "stdafx.h"

#include <conio.h>

#include <iostream>

#include <cstdlib>

#include <stdio.h>

#include <math.h>

using namespace std;

 

struct Train {  // указатель на узел, динамическую структуру Train

   int number; //ввод поля номер для поезда

   char path[10];// ввод поля пункт назначения поезда

   int hour;// ввод поля время отправления поезда (часы)

   int min; //ввод поля время отправления поезда (минуты стандартных имён

int main() {

   const int N = 5;

   setlocale(LC_ALL, "Russian");// подключение русского  языка  

   Train trains[5];// указание количества поездов в структуре

   for (int i = 0; i < N; i++) { // начало цикла для введения данных о 5 поездах

       cout << "Введите пункт назначения поезда " << i + 1 << endl; // Вывод на экран сообщения о необходимости ввести имя

       cin >> trains[ i ].path ; //ввод имени пользователем

       cout << "Введите номер для поезда " << i + 1 << endl;

       cin >> trains[ i ].number;

   cout << "Введите время отправления для поезда (часы) " << i + 1 << endl;

   cin >> trains[ i ].hour ;

   cout << "Введите время отправления для поезда (минуты) " << i + 1 << endl;

   cin >> trains[ i ].min ;

   }

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

{

    for(int j = i + 1; j < N; j++)  

    {

         if(strcmp(trains[i].path, trains[j].path)>0)

          {

       Train tmp = trains[i];

       trains[i] = trains[j];

       trains[j] = tmp;

          }

    }

}

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

{

    cout << " Пункт назначения: " << trains[ i ].path << "   номер: " << trains[ i ].number << "   Время отправления: " << trains[ i ].hour << ":" << trains[ i ].min  << endl << endl;

}

int time_h;

int time_min;

int k = 0;

cout << "Введите ваше время (часы затем минуты)" << endl;

cin >> time_h >> time_min;

cout << " Ваше время:" << time_h <<":" << time_min << endl << endl;

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

{

    if((time_h < trains[i].hour) || (time_h == trains[i].hour && time_min < trains[i].min))

   {

        cout << " следующие поезда отправятся после вашего времени: " << trains[i].number  <<" с временем "<< trains[i].hour << ":"<< trains[i].min << endl;

        k++;

       }

}

    if(k == 0)

   cout << " Нет подходящих поездов" << endl;

   

_getch();

return 0;

}

4,6(59 оценок)
Открыть все ответы
Ответ:
Semfore
Semfore
09.02.2023
Рассмотрим, что делает эта программа.
  c := 0; // начальное значение счётчика

  for i := 1 to 9 do // цикл по i

    if A[i - 1] < A[i] then begin // если текущий элемент больше предыдущего

      c := c + 1; // то увеличиваем счётчик на 1

      t := A[i]; // и меняем текущий элемент местами с предыдущим

      A[i] := A[i - 1];

      A[i - 1] := t

    end;

Последние три строчки перед end - обычный алгоритм обмена значениями между двумя переменными (t = a; a = b; b = t).

Итак, моделируем, что делает программа и считаем число обменов.

0) 6 9 7 2 1 5 0 3 4 8 - исходный массив
1) 6 9 7 2 1 5 0 3 4 8 -> 9 6 7 2 1 5 0 3 4 8 ОБМЕН
2) 9 6 7 2 1 5 0 3 4 8 -> 9 7 6 2 1 5 0 3 4 8 ОБМЕН
3) 9 7 6 2 1 5 0 3 4 8 ОК
4) 9 7 6 2 1 5 0 3 4 8 ОК
5) 9 7 6 2 1 5 0 3 4 8 -> 9 7 6 2 5 1 0 3 4 8 ОБМЕН
6) 9 7 6 2 5 1 0 3 4 8 ОК
7, 8, 9) Ноль будет "всплывать" в конец, 3 ОБМЕНА

Всего будет 6 обменов, c = 6.
4,6(54 оценок)
Ответ:
bts23
bts23
09.02.2023
// PascalABC.NET 3.3, сборка 1579 от 18.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var x:=ArrGen(8,i->Ln(i+1.1)); x.Println;
  var k:=x.Where(t->(Sin(t)>-0.5) and (Sin(t)<=0)).Count;
  var im:=x.IndexMin;
  Writeln('На указанном интервале найдено элементов: ',k);
  Writeln('Минимальный элемент массива, равный ',x[im],
      ' имеет порядковый номер ',im+1)
end.

Результат
0.0953101798043249 0.741937344729377 1.1314021114911 1.41098697371026 1.62924053973028 1.80828877117927 1.96009478404727 2.09186406167839
На указанном интервале найдено элементов: 0
Минимальный элемент массива, равный 0.0953101798043249 имеет порядковый номер 1
4,4(42 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ