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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заковыристый вопросик, С++ 
:(
    Опции темы
Serafim
  Дата 6.6.2005, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Опять мучаюсь с этой таблицей smile - изменить условия (курс доллара), данные для общего, так чтобы они принадлежали одному частному и по цепочке передавались каждому последующему частному!

Т.е. если на яблоках объяснять, то - у нас есть 3 (ну любое число) яблока с одинаковыми свойствами. Их свойства описаны для всех трёх. Нужно сделать так, чтобы условия были даны первому яблоку, а для остальных яблок эти условия передавались по цепочке.

P.S.: таблица типа - имя, пол, доход, доход в долларах.

Код

    #include <conio.h>
    #include <iostream.h> 
    #include <stdlib.h> 
    #include <iomanip.h> 

    struct rab {char name [45], pol; 
       int doxod;}; 


    rab   tabl [5];       //
    double   kursUE = 1; //

    


    void enter (rab & x) { 
    int j; cout << "Name:"; 
    cin >> x.name; 
    cout << "Pol:"; 
    cin >> x.pol; 
    {cout << "Doxod" << ":"; 
    cin >> x.doxod;} 
    } 

       void enterUEkurs (double & x)
   { 
     cout << "KursDollara:"; //
     cin >> x; 
   } 

    void print (rab x) 

    { 
     cout << setw (20) << x.name << setw (10) << x.pol 
     << setw (3)<<' '<< x.doxod << ' ' << (x.doxod / kursUE);
         } 

    void enter (rab y [], int & n) 

    { 

    cout << "size:"; cin >> n; int i; 
    for (i = 0; i < n; i ++) enter (y [i]);} 

    void print (rab y [], int n) 

    { 

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

    { 

    print (y [i]); cout << endl; 

    } 
       } 

    void main () 

    { 



    rab tabl [5]; int n; 
    do {textcolor (4);
    clrscr (); 
    cout << "1 - Enter, 2 - Vivod, Esc - Quit\n"; 
    switch (getch ()) 

    { 

    case '1': enter (tabl, n); break; 
    case '2':   enterUEkurs(kursUE);
    case '3': print (tabl, n); break;
    case  27 : exit (0); 

    } 
    getch (); 
    } 
    while (1); 
    } 

PM MAIL   Вверх
Alexandr87
Дата 6.6.2005, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

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



Сформулируй свой вопрос более, конкретно, а то ничего непонятно, кроме того что есть таблица, и велечина - курс доллара. Причем здесь условия, которые передаются. Короч опиши более понятно. И коль уж выложил пример, объясняй не на яблоках, а на своем примере.
PM Jabber   Вверх
Serafim
Дата 6.6.2005, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну в общем у меня есть условие:

Код

    rab   tabl [5];       
    double   kursUE = 1; 



Оно для всей моей таблицы. Так вот, нужно сделать так, чтобы оно оказалось вот здесь:

Код

void print (rab x) 

    { 
     cout << setw (20) << x.name << setw (10) << x.pol 
     << setw (3)<<' '<< x.doxod << ' ' << (x.doxod / kursUE);
         } 

    void enter (rab y [], int & n) 

    { 

    cout << "size:"; cin >> n; int i; 
    for (i = 0; i < n; i ++) enter (y [i]);} 

    void print (rab y [], int n) 

    { 

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

    { 

    print (y [i]); cout << endl; 

    } 
       } 

    void main () 

    { 



А прога осталась рабочей!
PM MAIL   Вверх
cardinal
Дата 6.6.2005, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Если я тебя правильно понял, то вот:
Код

typedef struct rab {
   char name [45];
   char pol; 
   int doxod;
   char kursUE;
} RAB;


int main(int argc, char* argv[])
{
   char c[2] = "4";
   RAB tabl[5] = {"", 0, 0, 0x03}; // твое единное значение для всех tabl
   return 0;
}

А потом для всех tabl используй вместо их kursUE вот это значение tabl[0].kursUE.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Serafim
Дата 6.6.2005, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



cardinal

Ты немнога не так понял... как мне сказал препод - нужно записать условия для доллара в print, а потом при помощи скобочек передавать их для всех...

Что-то типа:

Код

void print (rab y [], int n, kursUE)


Это сообщение отредактировал(а) Serafim - 6.6.2005, 22:14
PM MAIL   Вверх
cardinal
Дата 7.6.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Тогда может так: smile
Код

// testX.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <ostream.h>
#include <iomanip.h>

typedef struct rab {
    char *name;
    char pol; 
    int doxod;
} RAB;

void print(rab x, double kurs) 
{ 
    cout << setw (20) << x.name << setw(10) << x.pol 
         << setw (3)  <<' '<< x.doxod << setw(20) << (x.doxod / kurs) << '\n';
} 

void print_n(rab y[], int n) 
{ 
    int i;
    for (i = 0; i < n; i++) 
        print (y [i], 0.2435); cout << endl; 
} 

int main(int argc, char* argv[])
{
    RAB tabl[5];
    
    tabl[0].doxod = 105;
    tabl[0].name = "rub";
    tabl[0].pol = 0x01;

    tabl[1].doxod = 100;
    tabl[1].name = "tur";
    tabl[1].pol = 0x02;

    tabl[2].doxod = 120;
    tabl[2].name = "dol";
    tabl[2].pol = 0x02;

    tabl[3].doxod = 10;
    tabl[3].name = "lir";
    tabl[3].pol = 0x02;

    tabl[4].doxod = 50;
    tabl[4].name = "tug";
    tabl[4].pol = 0x04;

    print_n(tabl, 5);

    return 0;
}

Когда в следующий раз будешь код тут постить отформатируй его сначала, так чтобы его нормально читать было...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Serafim
Дата 7.6.2005, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



cardinal

Эт ты круто замутил! smile Хм... ну а если в таблице нужно будет сделать больше пяти человек? Тут по-моему как-то попроще можна сделать... Вообще как бы смесл заключается в том, что в верхушке проги мы вообще убираем вот эти две строки:
Код

    rab   tabl [5];       
    double   kursUE = 1; 


И вместо них тоже ничего не ставим. Эти же условия мы вписываем только в print. А чтобы эти условия работали мы передаём их посредством скобок... (так мне препод подсказку дал.... ) это реально? smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

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


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

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

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

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


 




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


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

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