Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
илья9696
120 / 120 / 70
Регистрация: 15.11.2014
Сообщений: 545
Завершенные тесты: 3
#1

Преобразование кода без указателя в код с использованием указателя

24.11.2015, 03:58. Просмотров 234. Ответов 2
Метки нет (Все метки)

Правильно ли выполнил?

Исходный код без указателя
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
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
 
int main()
{
    setlocale(0, "");
    int a, b, c;
    double d, e;
    cout << "Введите переменную a: ";
    cin >>  a;
    cout << "Введите переменную b: ";
    cin >>  b; 
    cout << "Введите переменную c: ";
    cin >>  c; 
    cout << "Введите переменную d: ";
    cin >>  d; 
    cout << "Введите переменную e: ";
    cin >>  e;
 
    
    
    double A = (8.0 / 5) + (a * b / c) + (a / b + c);
    double B = (d / a + b) + (e / a * b) + (a + b + c / d + e);
    double Q = -d * pow (10.0, 6) + a / b;
    cout << "Вывод A: " << A << endl
         << "Вывод B: " << B << endl
         << "Вывод Q: " << Q << endl;
 
    ofstream file("f-6.txt"); // создаем объект для создания файла
    file << "Введенные величины: " << "a= " << a << "," << " b= " << b << "," << " c= " << c << "," << " d= " << d << "," << " e= " << e << endl; // заполнение файла
    file << "Результаты расчета: " << "Вывод A: " << A << "," << " Вывод B: " << B << "," << " Вывод Q: " << Q; // заполнение файла
    
    system("Pause");
    system("cls");
 
    cout << "1\n2\n3\n4\n...." <<  a << ", " << b << ", " << c << "." << endl; // вывыд целых переменных
 
    system("Pause");
    system("cls");
 
    cout << "1\n2\n3\n4\n5\n6\n7\n........." << d << ", " << e << "." << endl; // вывод действительных переменных
    system("Pause");
 
    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
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
 
int main()
{
    setlocale(0, "");
    int a, b, c; // ввод переменных целых
    double d, e; // ввод вещественных переменных
    double A, B, Q; // ввод вывода решения
 
    int* ptrint; // указатель на целое
    double* ptrdouble; // указатель на вещественное
 
    ptrint = &a; // помещаем в ptrint адрес переменной a
    cout << "Введите переменную a: ";
    cin >>  a;
    ptrint = &b; // помещаем в ptrint адрес переменной b
    cout << "Введите переменную b: ";
    cin >>  b; 
    ptrint = &c; // помещаем в ptrint адрес переменной c
    cout << "Введите переменную c: ";
    cin >>  c; 
 
    ptrdouble = &d; // помещаем в ptrdouble адрес переменной d
    cout << "Введите переменную d: ";
    cin >>  d; 
    ptrdouble = &e; // помещаем в ptrdouble адрес переменной e
    cout << "Введите переменную e: ";
    cin >>  e;
 
     A = (8.0 / 5) + (a * b / c) + (a / b + c);
     B = (d / a + b) + (e / a * b) + (a + b + c / d + e);
     Q = -d * pow (10.0, 6) + a / b;
 
    ptrdouble = &A; // помещаем в ptrdouble адрес переменной A
    cout << "Вывод A: " << *ptrdouble << endl;
    ptrdouble = &B; // помещаем в ptrdouble адрес переменной B
    cout << "Вывод B: " << *ptrdouble << endl;
    ptrdouble = &Q; // помещаем в ptrdouble адрес переменной Q
    cout << "Вывод C: " << *ptrdouble << endl;
 
 
    
     A = (8.0 / 5) + (a * b / c) + (a / b + c);
     B = (d / a + b) + (e / a * b) + (a + b + c / d + e);
     Q = -d * pow (10.0, 6) + a / b;
    
    ofstream file("f-6.txt"); // создаем объект для создания файла
    file << "Введенные величины: " << "a= " << a << "," << " b= " << b << "," << " c= " << c << "," << " d= " << d << "," << " e= " << e << endl; // заполнение файла
    file << "Результаты расчета: " << "Вывод A: " << A << "," << " Вывод B: " << B << "," << " Вывод Q: " << Q; // заполнение файла
    
    system("Pause");
    system("cls");
 
    cout << "1\n2\n3\n4\n...." <<  a << ", " << b << ", " << c << "." << endl; // вывыд целых переменных
 
    system("Pause");
    system("cls");
 
    cout << "1\n2\n3\n4\n5\n6\n7\n........." << d << ", " << e << "." << endl; // вывод действительных переменных
    system("Pause");
 
    return 0;
}
Добавлено через 40 минут
Использование ссылки
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
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
 
int main()
{
    setlocale(0, "");
    int a, b, c; // ввод переменных целых
    double d, e; // ввод вещественных переменных
    double A, B, Q; // ввод вывода решения
 
    int &reference = a; // объявление и инициализация ссылки значением переменной a
    int &reference2 = b;
    int &reference3 = c;
 
    double &reference4 = d;
    double &reference5 = e;
 
    double &reference6 = A; //объявление и инициализация ссылки значением переменной 
    double &reference7 = B;
    double &reference8 = Q;
 
    
    cout << "Введите переменную a: ";
    cin >>  a;
 
    cout << "Введите переменную b: ";
    cin >>  b; 
    
    cout << "Введите переменную c: ";
    cin >>  c; 
 
    
    cout << "Введите переменную d: ";
    cin >>  d; 
    
    cout << "Введите переменную e: ";
    cin >>  e;
 
     A = (8.0 / 5) + (a * b / c) + (a / b + c);
     B = (d / a + b) + (e / a * b) + (a + b + c / d + e);
     Q = -d * pow (10.0, 6) + a / b;
 
    
    cout << "Вывод A: " << reference6 << endl
 
         << "Вывод B: " << reference7 << endl
 
         << "Вывод C: " << reference8 << endl;
 
 
    
     A = (8.0 / 5) + (a * b / c) + (a / b + c);
     B = (d / a + b) + (e / a * b) + (a + b + c / d + e);
     Q = -d * pow (10.0, 6) + a / b;
    
    ofstream file("f-6.txt"); // создаем объект для создания файла
    file << "Введенные величины: " << "a= " << a << "," << " b= " << b << "," << " c= " << c << "," << " d= " << d << "," << " e= " << e << endl; // заполнение файла
    file << "Результаты расчета: " << "Вывод A: " << A << "," << " Вывод B: " << B << "," << " Вывод Q: " << Q; // заполнение файла
    
    system("Pause");
    system("cls");
 
    cout << "1\n2\n3\n4\n...." <<  a << ", " << b << ", " << c << "." << endl; // вывыд целых переменных
 
    system("Pause");
    system("cls");
 
    cout << "1\n2\n3\n4\n5\n6\n7\n........." << d << ", " << e << "." << endl; // вывод действительных переменных
    system("Pause");
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 03:58
Ответы с готовыми решениями:

Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя?
Всем доброго дня.:) Можете обьяснить ,почему при инкриментировании...

Создание указателя на экземпляр класса, описанного после объявления указателя
Здравствуйте! Проблема в том, что нужно сделать так: class A{ public: B*...

Как сделать функцию от указателя на класс и указателя на метод?
Не получается сделать функцию, параметрами которой являются указатель на класс...

Возвращение неконстантного указателя из константного указателя на строку
Не могу до конца понять один момент. Допустим, у нас есть функция...

В чём отличие константного указателя и указателя на константу?
int *const p1 и int const* p2 Объясните мне в чём тут отличие.

2
DUMP
73 / 47 / 26
Регистрация: 22.02.2015
Сообщений: 306
24.11.2015, 07:51 #2
илья9696, работает ? значит да
0
zss
Модератор
Эксперт С++
7073 / 6611 / 4186
Регистрация: 18.12.2011
Сообщений: 17,433
Завершенные тесты: 1
24.11.2015, 08:09 #3
1. Зачем A,B,Q вычисляются дважды по одним и тем же формулам?
2. Почитайте как записываются double константы:
пишется не pow (10.0, 6), а 1e6
3. следите за типами операций:
Цитата Сообщение от илья9696 Посмотреть сообщение
(a * b / c
Цитата Сообщение от илья9696 Посмотреть сообщение
a / b + c
Цитата Сообщение от илья9696 Посмотреть сообщение
a / b
Здесь везде целочисленное деление с отбрасыванием остатка.
Итого:
C++
1
2
3
A =  8.0/5.0 + (double)a * b / c + (double)a / b + c;
     B = d / a + b + e / a * b + a + b + c / d + e;
     Q = -d *1e6 + (double)a / b;
Чтобы заметнее были места возможных целочисленных операций, пользуйтесь традицией имена целочисленных переменных начинать с i,j,k,l,m,n, т.е. не a,b,c, а na,nb,nc
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2015, 08:09

Преобразование указателя в массив
Всем привет. Есть указатель с типом const u_char * , известно , что он...

Преобразование указателя на C-массив
Добрый день. Есть функции:template&lt;int N&gt; constexpr void test1(const char...

Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ...
Написать обработчик исключений ситуации при преобразовании указателя на класс B...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru