Форум программистов, компьютерный форум CyberForum.ru

Долой Иф'ы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Пирамида из символов http://www.cyberforum.ru/cpp-beginners/thread996618.html
Написала программку,вот что она делает: * ** *** **** ***** ****** ******* Как сделать чтобы количество этих строк задавалось пользователем?:gsmile: #include <iostream>
C++ Конструирование класса, моделирующего работу устройства Дорогие форумчане, помогите разобраться с задачей. Необходимо: "1. Разработать модель работы электронного секундомера, состоящую из 3-4 свойств, наиболее существенных для описания поведения устройства, и 3-6 методов, моделирующих поведение объекта. 2. Определить набор допустимых значений для каждого свойства 3. Выявить все допустимые состояния объекта данного класса и представить их в виде... http://www.cyberforum.ru/cpp-beginners/thread996611.html
Построить вещественную матрицу по образцу C++
Помогите пожалуйста!!!! Как для заданного значения n (константа) построить вещественную матрицу X nxn: 1 1 1..........1 1 1 1 2 2 2.......2 2 1 1 2 3 3 ......3 2 1 1 2 3 4 ...4 3 2 1 ......................... 1 2 2.............2 1 1 1 1 1.............1
Программа для подсчёта символов, строк и слов C++
Привет! Недавно начал изучать C++, пишу программу для подсчёта символов, слов и строк данных введённых с клавиатуры, но она почему-то не считает слова (nw). Вот листинг #include "stdafx.h" #include "conio.h" #include "stdio.h" #define no 0 #define yes 1 #define eof -1 int _tmain(int argc, _TCHAR* argv)
C++ Рассчитать сумму модулей элементов массива http://www.cyberforum.ru/cpp-beginners/thread996582.html
Помогите, пожалуйста, с таким заданием, хотя бы наводки дайте. Ввести одномерный статический массив из k чисел.Найти сумму модулей элементов массива, расположенных после последнего нулевого элемента.
C++ Записать число русскими словами Добрый день! Вот условие: Дано натуральное число n≤1000. Записать русскими словами (семнадцать, три, тысяча и т. д.). есть код на Паскале, а вот переделать его в с++ не получается: uses crt; var st:string; n:integer; begin repeat write('n = '); подробнее

Показать сообщение отдельно
Труфольдин
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 4
03.11.2013, 21:40     Долой Иф'ы
Здравствуйте.
В приведённом ниже коде преподаватель сказал сделать его без "ифов", изменив саму архитектуру. Потратил много времени на переделку, но в итоге я всё равно прихожу к помощи if. Пробовал спрашивать знакомых, они тоже не могут придумать что-то, что позволит избавиться от if.

Подскажите пожалуйста решение этой задачи.
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void Interpretator::process()
{
    for(int i = 0; i < code.size(); i++)
    {
        if (code[i][0] == "=")
            map[code[i][1]] = code[i][2].toDouble();
 
        if (code[i][0] == "+")
            map[code[i][3]] = code[i][1].toDouble() + code[i][2].toDouble();
 
        if (code[i][0] == "-")
            map[code[i][3]] = code[i][1].toDouble() - code[i][2].toDouble();
 
        if (code[i][0] == "*")
            map[code[i][3]] = code[i][1].toDouble() * code[i][2].toDouble();
 
        if (code[i][0] == "/")
            map[code[i][3]] = code[i][1].toDouble() / code[i][2].toDouble();
 
        if (code[i][0] == "!")
            qDebug()<<(double) map[code[i][1]];
 
        if (code[i][0] == "sqrt")
            map[code[i][1]] = sqrt(map[code[i][1]]);
    }
}


Весь код:
(заголовок)
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef INTERPRETATOR_H
#define INTERPRETATOR_H
#include <QMap>
#include <QString>
#include <QStringList>
 
class Interpretator
{
    QMap<int, QStringList> code;
    QMap<QString, double> map;
 
public:
    void open_file(char* name_file);
    void process();
};
 
#endif // INTERPRETATOR_H


(тело)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "interpretator.h"
#include <QFile>
#include <QTextStream>
#include <iterator>
#include <QDebug>
#include <math.h>
 
void Interpretator::open_file(char* name_file)
{
    QFile file(name_file);
 
    if(!file.open(QIODevice::ReadOnly))
        qDebug()<<"Error opening file!";
    else
    {
        QTextStream stream(&file);
        for(int i = 0; !stream.atEnd(); i++)
        {
            QString str = file.readLine().trimmed();
            code[i] = str.split(QRegExp("\\s+"));
        }
    }
    file.close();
}
 
void Interpretator::process()
{
    for(int i = 0; i < code.size(); i++)
    {
        if (code[i][0] == "=")
            map[code[i][1]] = code[i][2].toDouble();
 
        if (code[i][0] == "+")
            map[code[i][3]] = code[i][1].toDouble() + code[i][2].toDouble();
 
        if (code[i][0] == "-")
            map[code[i][3]] = code[i][1].toDouble() - code[i][2].toDouble();
 
        if (code[i][0] == "*")
            map[code[i][3]] = code[i][1].toDouble() * code[i][2].toDouble();
 
        if (code[i][0] == "/")
            map[code[i][3]] = code[i][1].toDouble() / code[i][2].toDouble();
 
        if (code[i][0] == "!")
            qDebug()<<(double) map[code[i][1]];
 
        if (code[i][0] == "sqrt")
            map[code[i][1]] = sqrt(map[code[i][1]]);
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru