forwandy42
?>

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

Информатика

Ответы

marimelons795

Объяснение:

#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;

}

lebedev815
Рассмотрим, что делает эта программа.
  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.
dddddd68
// 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

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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

Популярные вопросы в разделе

KosarinPotemkina1888
Melsan19914239
zipylin
mirsanm26249
zagadka27
Тресков946
beaevgen711
andrew-lev2501
elena-novikova-1992
Голубева1440
sleek73
superkiosk249
Paikina Natalya30
Alnkseevna
T91610933073266