Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Структуры и динамическая памьять 
:(
    Опции темы
denfis
Дата 9.12.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.12.2011

Репутация: нет
Всего: нет



Помогите пожалуста з задачками

1. Описать структуру с именем TRAIN, которая включает следующие поля:
NAZV - окончательный пункт руху поезда
NUMR - номер поезда
DATE - дата отправления
TIME - время отправления

Написать программу что делает следующие действия:
ввод с клавиатуры данных в массив RASP, что складается з N сменных типу TRAIN
сортировка записов за алфавитом за названием пункта назначения
вывод на экран информации про поезда, что отправляются после даты и времени что было введено з клавиатуры, если таких поездов нету вывести сообщение


2. Написать программу используя динамичное выделение памьяти:
Данна прямокутная целочисельная матрица. Вызначить количество столпцов, которые не включают жодного нульового элемента.
Характеристикой рядка целочисельной матрицы назовем суму её четных положительных елементов. Переставляя радки данной матрицы, розместить их у соответствия сростания характеристик.

P.S. глубачайше извеняюсь за мой руский    
PM MAIL   Вверх
bobik02
Дата 9.12.2011, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 26.11.2007

Репутация: 3
Всего: 14



1. как то так.
Код

#include <iostream>
#include <string>
using namespace std;

const int N = 2;

struct train {
    string nazv;
    string numr;
    string date;
    string time;
};

int main() {
    train rasp[N];

// in
for(int i=0; i<N; i++) {
    cout << i << " enter name: ";
    cin >> rasp[i].nazv;
    cout << i << " enter numr: ";
    cin >> rasp[i].numr;
    cout << i << " enter date: ";
    cin >> rasp[i].date;
    cout << i << " enter time: ";
    cin >> rasp[i].time;
}


// sort
for(int i=0; i<N; i++) {
    for(int j=0; j<N; j++) {
        if  ( rasp[i].nazv <rasp[j].nazv  )

        {
            string tmp = rasp[i].nazv;
            rasp[i].nazv = rasp[j].nazv ;
            rasp[j].nazv  = tmp;

            tmp = rasp[i].numr;
            rasp[i].numr = rasp[j].numr;
            rasp[j].numr  = tmp;

            tmp = rasp[i].date;
            rasp[i].date = rasp[j].date;
            rasp[j].date  = tmp;

            tmp = rasp[i].time;
            rasp[i].time = rasp[j].time;
            rasp[j].time  = tmp;
        }
    }
}

cout << endl;
// view
for(int i=0; i<N; i++)
    cout << rasp[i].nazv << " "<<  rasp[i].numr << " " << rasp[i].date << " " << rasp[i].time << "\n";


    return 0;
}

Вывод на экран(да и не только) было лень доделать, попробуй сам.


--------------------
Have a nice day
PM   Вверх
denfis
Дата 9.12.2011, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.12.2011

Репутация: нет
Всего: нет



Cпасибо smile  и помогите кто-нибудь со второй задачой
PM MAIL   Вверх
Dov
Дата 11.12.2011, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Код
int main()
{
    srand((unsigned)time(NULL));

    int       rows;             // количество строк.
    int       cols;             // количество столбцов.

    // просим пользователя ввести размеры матрицы
    cout << "enter the dimensions of the matrix:\n rows: ";
    cin  >> rows;
    cout << " cols: ";
    cin  >> cols;        
    
    // выделяем память под матрицу
    int ** pp;
    pp = new int * [rows];
    for(int i = 0; i < rows; i++)
        pp[i] = new int[cols];

    // заполняем матрицу случайными числами.
    for(int i = 0; i < rows; i++)
        for(int j = 0; j < cols; j++)
            pp[i][j] = rand() % 20 - 10;

    // динамический массив счётчиков сумм эл-тов
    int * sum;
    sum = new int[rows];

    // считаем сумму нужных эл-тов каждого ряда матрицы и заносим в массив счётчиков 
    for(int i = 0; i < rows; i++)
    {
        sum[i] = 0; 
        for(int j = 1; j < cols; j += 2)
            if(pp[i][j] > 0)
                sum[i] += pp[i][j];
    }

    // выводим на экран матрицу и 'характеристику' каждого    ряда
    cout << "\n\tmatrix " << rows << "x" << cols << ":\n";
    cout << "before:" << setw(4 * (cols + 1)) << "sum:\n" ;
    for(int i = 0; i < rows; i++)
    {
        for(int j = 0; j < cols; j++)
            cout << setw(4) << pp[i][j];
        cout << setw(8) << sum[i] << endl;
    }

    // подсчитываем количество столбцов без нулей
    int    count = 0;             // счётчик столбцов не содержащих нули
    for(int j = 0; j < cols; j++)
    {
        int i;
        for(i = 0; i < rows; i++)
            if(pp[i][j] == 0)
                break;
            
            if(i == rows)
                count++;
    }    
    cout << "\ncolumn without zeros: " << count << endl;

    // переставляем строки матрицы по возрастанию 'характеристик' 
    for(int i = 0; i < rows - 1; i++)
    {
        for(int j = i + 1; j < rows; j++)
        {
            if(sum[i] > sum[j])
            {
                int * p = pp[i];
                pp[i]   = pp[j];
                pp[j]   = p;

                int    a   = sum[i];
                sum[i]  = sum[j];
                sum[j]  = a;
            }
        }
    }

    // выводим 'упорядоченную' матрицу
    cout << "\nafter: " << setw(4 * (cols + 1)) << "sum:\n";
    for(int i = 0; i < rows; i++)
    {
        for(int j = 0; j < cols; j++)
            cout << setw(4) << pp[i][j];
        cout << setw(8) << sum[i] << endl;
    }
    cout << endl;

    // освобождаем память
    delete [] sum;
    for(int i = 0; i < rows; i++)
        delete [] pp[i];
    delete [] pp;

    return 0;
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
denfis
Дата 12.12.2011, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.12.2011

Репутация: нет
Всего: нет



Агромное спасибо smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.