Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 544

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

24.11.2015, 03:58. Показов 967. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2015, 03:58
Ответы с готовыми решениями:

Как сделать этот код без указателя, чтоб работал
Данные о росте 25 учеников класса, упорядоченные по убыванию, записаны в массиве. В начале учебного года в класс поступили два новых...

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

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

2
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306
24.11.2015, 07:51
илья9696, работает ? значит да
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
24.11.2015, 08:09
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2015, 08:09
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru