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

Учусь программированию на языке с++ самостоятельно - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.65
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 322
08.04.2014, 09:56     Учусь программированию на языке с++ самостоятельно #1
Учусь программированию на языке с++ самостоятельно (уроки Дениса Маркова в Ютуб).
После урока с циклами у меня возникли огромные проблемы. Не могу выполнит домашку.
Данный момент изучаю массивы.
Задачи:
1. Найти сумму всех элеметов массива. - С этим как то разобрался с помошю этого форума.
2. Найти нужный элемент в массиве. Вывести его индекс, если в массиве нет такого значение вывести 1.
Вроде бы надо действовать так:
- Создать массив;
- Запомнит элементы массива;
- устроит ввод элемента с консоли для проверки;
- использовать "if else" для вывода единички если элемент не находится в массиве, а если находится вывести индекс.
Вот я не знаю как сохранит в программе элементы массива. Только при вводе с консоли.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       int main()
{
    setlocale (LC_ALL , "Russian");
    int A[5];
       
    for(int i = 1; i <= 4; i++)
    {  
    cout << "Введите значение" << i <<" эелемента массива:  ";
    while(!(cin >> A[i]))
        cout << "Не верный ввод" << endl;
}
                
       _getch ();
        return 0;
}

А вот сохранит в программе не как. Постоянно выдает ошибку.

Мне не нужен готовый код. Нужна правильное направление.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2014, 20:34     Учусь программированию на языке с++ самостоятельно
Еще ссылки по теме:

C++ учусь разбирать чужой код
сессия.Какой подход к программированию используется на языке С++ C++
Перегрузка операторов. Учусь. Ошибка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
tceygo
Сообщений: n/a
23.04.2014, 20:34     Учусь программированию на языке с++ самостоятельно #161
Учу С++ по книге Джона Смайли "Учимся програмировать на С++"
После добавления цикла начаись проблемы, подскажите что не так.

Код програмы до:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// Grades.cpp
#include <iostream>
 
int main ()
{
    using namespace std;
    const float ENGLISH_MIDTERM_PERCENTAGE = .25;
    const float ENGLISH_FINALEXAM_PERCENTAGE = .25;
    const float ENGLISH_RESEARCH_PERCENTAGE = .30;
    const float ENGLISH_PRESENTATION_PERCENTAGE = .20;
    const float MATH_MIDTERM_PERCENTAGE = .50;
    const float MATH_FINALEXAM_PERCENTAGE =.50;
    const float SCIENCE_MIDTERM_PERCENTAGE = .40;
    const float SCIENCE_FINALEXAM_PERCENTAGE = .40;
    const float SCIENCE_RESEARCH_PERCENTAGE = .20;
    int midterm = 0;
    int finalExamGrade = 0;
    int research = 0;
    int presentation =0;
    float finalNumericGrade = 0;
    char finalLetterGrade;
    char response[256];
    
    // Для якого типу студента ведеться обчислення?
    cout << "Enter student typ " << 
    "(1=English, 2=Math, 3=Science): ";
    cin.getline(response,256);
    if (strlen(response)==0) { 
        cout << "You must select a Student Typ";
        return 1;
    }
    if ((atoi(response) < 1) | (atoi(response) > 3)) {
        cout << response << " is not a valid student type";
        return 1;
    }
    // Підходящий тип студента переходимо до обчислень
    switch(atoi(response))
    {
    //Випадок 1 - студент факультету англійської мови
    case 1:
        cout << "Enter the midterm grade: " ;
        cin.getline(response,256);
        midterm = atoi (response);
        cout << "Enter the Final Examination Grade: ";
        cin.getline(response,256);
        finalExamGrade = atoi (response);
        cout << "Enter the Research Grade: ";
        cin.getline(response,256);
        research = atoi(response);
        cout << "Enter the Presentation Grade: ";
        cin.getline(response,256);
        presentation = atoi(response);
        
        finalNumericGrade = (midterm*ENGLISH_MIDTERM_PERCENTAGE) +
        (finalExamGrade*ENGLISH_FINALEXAM_PERCENTAGE) +
        (research*ENGLISH_RESEARCH_PERCENTAGE) +
        (presentation * ENGLISH_PRESENTATION_PERCENTAGE);
        
        if (finalNumericGrade >= 93) finalLetterGrade = 'A';
        else
        if ((finalNumericGrade >= 85) & (finalNumericGrade < 93)) finalLetterGrade = 'B';
        else
        if ((finalNumericGrade >= 78) & (finalNumericGrade < 85)) finalLetterGrade = 'C';
        else
        if ((finalNumericGrade >= 70) & (finalNumericGrade < 78)) finalLetterGrade = 'D';
        else
        if (finalNumericGrade < 70) finalLetterGrade = 'F';
        
        cout << endl << "***ENGLISH STUDENT***" << endl << endl;
        cout << "Midterm grade is: " << midterm << endl;
        cout << "Final Exam is: " << finalExamGrade << endl;
        cout << "Research Grade: " << research << endl;
        cout << "Presentation grade: " << presentation << endl;
        cout << "Final Numeric Grade: " << finalNumericGrade << endl;
        cout << "Final Letter Grade: " << finalLetterGrade;
        break;
//Случай 2 - студент факультета математики
    case 2:
        cout << "Enter the Midterm Grade: ";
        cin.getline(response,256);
        midterm = atoi(response);
        cout << "Enter the Final Examination Grade: ";
        cin.getline(response,256);
        finalExamGrade = atoi(response);
        
        finalNumericGrade = (midterm*MATH_MIDTERM_PERCENTAGE) + 
        (finalExamGrade*MATH_FINALEXAM_PERCENTAGE);
        
        if (finalNumericGrade >= 90) finalLetterGrade = 'A';
        else
        if ((finalNumericGrade >= 83) & (finalNumericGrade < 90)) finalLetterGrade = 'B';
        else
        if ((finalNumericGrade >= 76) & (finalNumericGrade < 83)) finalLetterGrade = 'C';
        else
        if ((finalNumericGrade >= 65) & (finalNumericGrade <76)) finalLetterGrade = 'D';
        else
        if (finalNumericGrade <65) finalLetterGrade = 'F';
        cout << endl << "***MATH STUDENT***" << endl << endl;
        cout << "Midterm grade is: " << midterm << endl;
        cout << "Final Exam grade is: " << finalExamGrade << endl;
        cout << "Final Numeric Grades is: " << finalNumericGrade << endl;
        cout << "Final Letter Grades is: " << finalLetterGrade;
        break;
// Случай 3 - студент факультета естестваных наук
    case 3:
        cout << "Enter the Midterm Grade: ";
        cin.getline(response,256);
        midterm = atoi(response);
        cout << "Enter the Final Examination Grade: ";
        cin.getline(response,256);
        finalExamGrade = atoi(response);
        cout << "Enter the Research Grade: ";
        cin.getline(response,256);
        research = atoi(response);
        finalNumericGrade = (midterm*SCIENCE_MIDTERM_PERCENTAGE) +
        (finalExamGrade*SCIENCE_FINALEXAM_PERCENTAGE) +
        (research*SCIENCE_RESEARCH_PERCENTAGE);
        
        if (finalNumericGrade >= 90) finalLetterGrade = 'A';
        else
        if ((finalNumericGrade >= 80) & (finalNumericGrade <90)) finalLetterGrade = 'B';
        else
        if ((finalNumericGrade >= 70) & (finalNumericGrade <80)) finalLetterGrade = 'C';
        else 
        if ((finalNumericGrade >= 60) & (finalNumericGrade < 70)) finalLetterGrade = 'D';
        else
        if (finalNumericGrade < 60) finalLetterGrade = 'F';
        cout << endl << "***SCIENCE STUDET***" << endl << endl;
        cout << "Midterm grade is: " << midterm << endl;
        cout << "Final Exam is: " << finalExamGrade << endl;
        cout << "Research grade is: " << research << endl;
        cout << "Final Numeric Grade is: " << finalNumericGrade << endl;
        cout << "Final Letter Grade is: " << finalLetterGrade;
        break;
    default:
        cout << response << " - is not a valid student type";
    return 1;
    }
    return 0;
}
Результат:


Код програмы после:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
// Grades5_1.cpp
 
#include<iostream>
#include<string>
 
int main ()
{
    using namespace std;
    
    const float ENGLISH_MIDTERM_PERCENTAGE = .25;
    const float ENGLISH_FINALEXAM_PERCENTAGE = .25;
    const float ENGLISH_RESEARCH_PERCENTAGE = .30;
    const float ENGLISH_PRESENTATION_PERCENTAGE = .20;
    const float MATH_MIDTERM_PERCENTAGE = .50;
    const float MATH_FINALEXAM_PERCENTAGE = .50;
    const float SCIENCE_MIDTERM_PERCENTAGE = .40;
    const float SCIENCE_FINALEXAM_PERCENTAGE = .40;
    const float SCIENCE_RESEARCH_PERCENTAGE = .20;
    int midterm = 0;
    int finalExamGrade = 0;
    int research = 0;
    int presentation = 0;
    float finalNumericGrade = 0;
    char finalLetterGrade;
    char response[256];
    string moreGradesToCalculate;
    
    cout << "Do you want to calculate a grade? ";
    cin >> moreGradesToCalculate;
    
    for (int i = 0; i < moreGradesToCalculate.length(); i++) {
        moreGradesToCalculate[i] = toupper (moreGradesToCalculate[i]);
        }
    while(moreGradesToCalculate == "YES") {
    // Для якого типу студента ведуться розрахунки
        cout << "Enter student typ " << 
    "(1=English, 2=Math, 3=Science): ";
    cin.getline(response,256);
    if (strlen(response)==0) { 
        cout << "You must select a Student Typ";
        return 1;
    }
    if ((atoi(response) < 1) | (atoi(response) > 3)) {
        cout << response << " is not a valid student type";
        return 1;
    }
        // Підходящий тип студента переходимо до обчислень
        switch(atoi(response))      
        {
            //Випадок 1 - студент факультету англійської мови
            case 1:
                cout << "Enter the midterm grade: " ;
                cin.getline(response,256);
                midterm = atoi (response);
                cout << "Enter the Final Examination Grade: ";
                cin.getline(response,256);
                finalExamGrade = atoi (response);
                cout << "Enter the Research Grade: ";
                cin.getline(response,256);
                research = atoi(response);
                cout << "Enter the Presentation Grade: ";
                cin.getline(response,256);
                presentation = atoi(response);
        
                finalNumericGrade = (midterm*ENGLISH_MIDTERM_PERCENTAGE) +
                (finalExamGrade*ENGLISH_FINALEXAM_PERCENTAGE) +
                (research*ENGLISH_RESEARCH_PERCENTAGE) +
                (presentation * ENGLISH_PRESENTATION_PERCENTAGE);
        
                if (finalNumericGrade >= 93) finalLetterGrade = 'A';
                else
                if ((finalNumericGrade >= 85) & (finalNumericGrade < 93)) finalLetterGrade = 'B';
                else
                if ((finalNumericGrade >= 78) & (finalNumericGrade < 85)) finalLetterGrade = 'C';
                else
                if ((finalNumericGrade >= 70) & (finalNumericGrade < 78)) finalLetterGrade = 'D';
                else
                if (finalNumericGrade < 70) finalLetterGrade = 'F';
        
                cout << endl << "***ENGLISH STUDENT***" << endl << endl;
                cout << "Midterm grade is: " << midterm << endl;
                cout << "Final Exam is: " << finalExamGrade << endl;
                cout << "Research Grade: " << research << endl;
                cout << "Presentation grade: " << presentation << endl;
                cout << "Final Numeric Grade: " << finalNumericGrade << endl;
                cout << "Final Letter Grade: " << finalLetterGrade;
                break;
            //Случай 2 - студент факультета математики
            case 2:
                cout << "Enter the Midterm Grade: ";
                cin.getline(response,256);
                midterm = atoi(response);
                cout << "Enter the Final Examination Grade: ";
                cin.getline(response,256);
                finalExamGrade = atoi(response);
        
                finalNumericGrade = (midterm*MATH_MIDTERM_PERCENTAGE) + 
                (finalExamGrade*MATH_FINALEXAM_PERCENTAGE);
        
                if (finalNumericGrade >= 90) finalLetterGrade = 'A';
                else
                if ((finalNumericGrade >= 83) & (finalNumericGrade < 90)) finalLetterGrade = 'B';
                else
                if ((finalNumericGrade >= 76) & (finalNumericGrade < 83)) finalLetterGrade = 'C';
                else
                if ((finalNumericGrade >= 65) & (finalNumericGrade <76)) finalLetterGrade = 'D';
                else
                if (finalNumericGrade <65) finalLetterGrade = 'F';
                cout << endl << "***MATH STUDENT***" << endl << endl;
                cout << "Midterm grade is: " << midterm << endl;
                cout << "Final Exam grade is: " << finalExamGrade << endl;
                cout << "Final Numeric Grades is: " << finalNumericGrade << endl;
                cout << "Final Letter Grades is: " << finalLetterGrade;
                break;
            // Случай 3 - студент факультета естестваных наук
            case 3:
                cout << "Enter the Midterm Grade: ";
                cin.getline(response,256);
                midterm = atoi(response);
                cout << "Enter the Final Examination Grade: ";
                cin.getline(response,256);
                finalExamGrade = atoi(response);
                cout << "Enter the Research Grade: ";
                cin.getline(response,256);
                research = atoi(response);
                finalNumericGrade = (midterm*SCIENCE_MIDTERM_PERCENTAGE) +
                (finalExamGrade*SCIENCE_FINALEXAM_PERCENTAGE) +
                (research*SCIENCE_RESEARCH_PERCENTAGE);
        
                if (finalNumericGrade >= 90) finalLetterGrade = 'A';
                else
                if ((finalNumericGrade >= 80) & (finalNumericGrade <90)) finalLetterGrade = 'B';
                else
                if ((finalNumericGrade >= 70) & (finalNumericGrade <80)) finalLetterGrade = 'C';
                else 
                if ((finalNumericGrade >= 60) & (finalNumericGrade < 70)) finalLetterGrade = 'D';
                else
                if (finalNumericGrade < 60) finalLetterGrade = 'F';
                cout << endl << "***SCIENCE STUDET***" << endl << endl;
                cout << "Midterm grade is: " << midterm << endl;
                cout << "Final Exam is: " << finalExamGrade << endl;
                cout << "Research grade is: " << research << endl;
                cout << "Final Numeric Grade is: " << finalNumericGrade << endl;
                cout << "Final Letter Grade is: " << finalLetterGrade;
                break;
            default:
                cout << response << " - is not a valid student type";
            return 1;
            } // кінець оператора switch
        cout << endl << endl << "Do you have anothee grade to calculate? ";
        cin >> moreGradesToCalculate;
        for (int i = 0; i < moreGradesToCalculate.length(); i++) {
            moreGradesToCalculate[i] = toupper (moreGradesToCalculate[i]);
            }  // кінець цикла for
        }      // кінець цикла while
    cout << "Thanks for using the Grades Calculation program!";
    return 0;
    }
После ввода ответа на вопрос и единократного нажатия клавиши ENTR Имеем вот такой результат:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
23.04.2014, 20:34     Учусь программированию на языке с++ самостоятельно
Ответ Создать тему
Опции темы

Текущее время: 08:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru