![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
InFuz |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 116 Регистрация: 13.10.2009 Город: Ульяновск Учебное заведение: УлГУ Вы: студент ![]() |
В общем закончили 1 семестр и во втором начался C++ (был и остался Pascal)
Посоветуйте какую нибудь книжку или самоучитель по C++. Пока читаю Г. Шилд "Самоучитель С++" И помогите разобраться с 1 лабой. Мало того, что в С++ пока не рублю так еще и задача... я ее даже на листке не решу не то что уж прогу по ней писать. Известны координаты вершин треугольника ABC: A(x1,y1), B(x2,y2) и C(x3,y3). Найти его площадь и периметр. Нашел в инете пару формул, хотя точно не уверен что те. Вот, что пока смог накорябать. # include <iostream.h> # include <stdio.h> # include <math.h> int main() { int x1,x2,x3,y1,y2,y3; double s,p,a,b,c; cout<<"\n Лабораторная работа №1"; cout<<"\n x1="; cin>>x1; cout<<"\n x2="; cin>>x2; cout<<"\n x3="; cin>>x3; cout<<"\n y1="; cin>>y1; cout<<"\n y2="; cin>>y2; cout<<"\n y3="; cin>>y3; a = sqrt((x1-x2)^2+(y1-y2)^2); b = sqrt((x1-x3)^2+(y1-y3)^2); c = sqrt((x2-x3)^2+(y2-y3)^2); p = a+b+c; cout<<"\n p=" <<p; /* cout<<"p="<<p; s=(x1-x3)*(y2-y3)*(x2-x3)*(y1-y3)/2; cout<<"s="<<s; */ } |
![]() ![]() |
InFuz |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 116 Регистрация: 13.10.2009 Город: Ульяновск Учебное заведение: УлГУ Вы: студент ![]() |
Чот не знаю как пузырек оформить в виде функции, если просто в main дописать понятно, а как в функцию сортировки передать все значения что бы он с ними работала?
Хочу в функции сортировки сделать копию массива с которым надо рабоать, потом там его отсортировать и печатать то что получилось. |
Vahappaday |
![]()
Сообщение
#3
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
Хочу в функции сортировки сделать копию массива с которым надо рабоать, потом там его отсортировать и печатать то что получилось. Плохое решение. Если Вы передаёте указатель на начало массива и количество элементов в нём, то изменяя элементы массива по указателю, Вы изменяете исходный массив. То есть, изменения будут "видны" и в вызывающей функции. Вы понимаете, чем отличаются локальные данные и глобальные, данные кучи и данные стека? Это то, с чего нам начали объяснять С на 1 курсе. И это правильно! Это надо понимать. В С/С++ надо уметь работать с указателями, вот мне и интересно, у Вас с этим всё ок? Поскольку сдавать завтра, скажу так: достаточно отсортировать массив по указателю, никуда его не копируя. А уже в main выводить его и всё прочее. Но вообще рекомендую с указателями разобраться. В качестве упражнения: выделите корректно память под трёхмерный массив, передайте его в функцию, отсортируйте как-нибудь, например, сначала по x, потом по y, потом по z (порядок сортировки сами выберите). А потом напечатайте и освободите корректно память - крайне полезное упражнения для начала. PS. Если такие уж сильные проблемы с сортировкой, пузырёк могу по-быстрому написать)) |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 26.5.2025, 0:48 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru