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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Getron
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 16
#1

Массивы,struct и всякое такое - C++

30.04.2011, 13:19. Просмотров 1101. Ответов 19
Метки нет (Все метки)

Народ спасайте задали 11 задач по С++, 8 сделал а остальные 3 не получаются....помогите пожалуйста.
1.Вычислить длины окружностей, площади кругов и объемы шаров для ряда заданных радиусов. Признаком окончания счета является нулевое значение радиуса.(принцип понял,реализовать не получилось)
2.Дана матрица A:array[1..6,1..2] вещественных чисел. Рассматривая A[I,1] и A[I,2] как координаты точек на плоскости, определить радиус наименьшего круга (с центром в начале координат), внутрь которого попадают все эти точки.
3.Вывести список сотрудников, имеющих высшее образование и 2 и более ребенка.( это ваще хз как сделать... вроде просили struct использовать)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2011, 13:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы,struct и всякое такое (C++):

объясните пожалуйста. что такое struct STUDENT? - C++
include <conio.h> #include <iostream> struct STUDENT { char fio; /* фамилия и.о. */ char oc; /* 5 оценок + '\n' + '\0' */ }; ...

МАССИВЫ:Что такое приведённый индекс? - C++
Что такое приведённый индекс? ну подскажите пожалуйста(

Заменить всякое вхождение слова "это" на слово "то" - C++
Заменить каждое вхождение слова "это" на слово "то". Прошу помощи! #include <iostream> #include <Windows.h> #include...

struct (с++) - C++
Кто может написать полный синтаксис структуры. Чем отличается структура от класса ? Всем ответившим высказываю свою благодарность.

struct - C++
Привествую ) Такой вопрос назрел ) Хочу создать переменную типа структуры: Всегда создавал так: my_struct var;

Struct{...} - C++
Драсьте мне нужна помощь. Написать программу ввода и вывода студентов группы и каждый из них характеризуется фамилией и номером...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
30.04.2011, 14:22 #2
№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
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cmath>
 
float Distance(float x1, float y1, float x2, float y2) {
  return pow(pow(x1 + x2, 2.) + pow(y1 + y2, 2.), .5);
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  float Points[6][2];
 
  for (int i = 0; i < 6; ++i)
    printf("(%.1f, %.1f) ", Points[i][0] = (rand() % 1001 - 500) / 10.,
                        Points[i][1] = (rand() % 1001 - 500) / 10.);
  printf("\n");
 
  float max_radius = 0;
  for (int i = 0; i < 6; ++i) {
    float this_distance = Distance(0, 0, Points[i][0], Points[i][1]);
    if (max_radius < this_distance)
      max_radius = this_distance;
  }
 
  printf("Radius = %f\n", max_radius);
  return 0;
}
1
Ma3a
Эксперт C++
617 / 461 / 31
Регистрация: 28.01.2011
Сообщений: 605
30.04.2011, 14:39 #3
№1
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
#include <iostream>
#include <vector>
#include <cmath>
 
#define PI 3.1415926535
 
int main()
    {
    setlocale(LC_ALL,"rus");
 
    std::vector<double> lengths, areas, volumes;
 
    double radius;
 
    while(std::cin >> radius && radius != 0)
        {
        lengths.push_back(2.0 * PI * radius);
        areas.push_back(PI * pow(radius,2));
        volumes.push_back(4.0 / 3.0 * PI * pow(radius,3));
        }
 
    for(size_t i = 0, len = lengths.size(); i < len; ++i)
        {
        std::cout << "Радиус №" << i + 1 << ".\nДлина окружности = " << lengths[i]
            << "\nПлощадь круга = " << areas[i]
            << "\nОбъем шара = " << volumes[i] << std::endl;
        }
 
    return 0;
    }
1
Getron
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 16
30.04.2011, 16:13  [ТС] #4
вау....супер код....а он на "C for DOS" пойдёт?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
30.04.2011, 16:52 #5
Getron, нет. Вам ничего не намекает, что сейчас уже Windows 7 и времена ДОС-а прошли очень давно?
0
Getron
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 16
30.04.2011, 17:41  [ТС] #6
я понимаю,но у нас колледж походу ещё в прошлом веке живёт....у нас на втором курсе был Free Pascal и Lazarus(Delphi), а на третьем уже (C for DOS), тут уж ничего неподелаешь....мы все недовольны этой шнягой
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
30.04.2011, 19:35 #7
№2 for ansi C
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  size_t i;
  float points[6][2];
  float radius, distance;
 
  for (i = 0; i < 6; ++i)
    printf("(%.2f, %.2f) ", points[i][0] = (rand() % 1001 - 500) / 100.,
                            points[i][0] = (rand() % 1001 - 500) / 100.);
  printf("\n");
 
  for (i = 0; i < 6; ++i)
    if (radius < (distance = pow(pow(points[i][0], 2.) +
                                 pow(points[i][1], 2.), 0.5)))
      radius = distance;
 
  printf("Radius = %f\n", radius);
 
  return 0;
}
Добавлено через 1 час 22 минуты
№3 for C
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
enum Education { base, high, higher };
 
struct Stuff {
  size_t id;
  enum Education education;
  size_t children;
};
 
void PrintStuff(struct Stuff *stuff) {
  printf("Id: %d, education: ", stuff->id);
  switch (stuff->education) {
    case 0: printf("base, "); break;
    case 1: printf("high, "); break;
    case 2: printf("higher, "); break;
  }
  printf("children: %d.\n", stuff->children);
}
 
struct Stuff *RandomStuff(size_t id, struct Stuff *stuff) {
  stuff->id = id;
  stuff->education = rand() % 3;
  stuff->children = rand() % 3;
  return stuff;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  size_t i;
 
  struct Stuff stuff[20];
  for (i = 0; i < 20; ++i)
    PrintStuff(RandomStuff(i, &stuff[i]));
 
  printf("Higher education with two children:\n");
 
  for (i = 0; i < 20; ++i)
    if (stuff[i].education == higher && stuff[i].children == 2)
      PrintStuff(&stuff[i]);
 
  return 0;
}
1
Getron
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 16
30.04.2011, 19:52  [ТС] #8
Ну ребята, если эти коды попрут на C for DOS, то для меня это будет большая удача))) кстати задача #3 тоже не можете понять? я и препода спрашивал и толку ноль...хз как её сделать

Добавлено через 1 минуту
последний код конечно вызывает доверие,но как это приподнести....я даже незнаю что stuff вполняет

Добавлено через 26 секунд
грузанёт вопросами

Добавлено через 14 минут
Протестил все коды, все идут, но С for DOS, настаивает на том что "Этого просто не может быть!!"
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
30.04.2011, 20:04 #9
№1
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  const float k_PI = 3.1415926535;
  int radius;
 
  do {
    printf("Enter radius, 0 for last: ");
    scanf("%d", &radius);
    printf("Circle curve length: %f.\n", 2.0 * k_PI * radius);
    printf("Circle area: %f.\n", k_PI * radius * radius);
    printf("Sphere volume: %f.\n", 4.0 / 3.0 * k_PI * radius * radius * radius);
  } while (radius != 0);
 
  return 0;
}
Добавлено через 9 минут
Цитата Сообщение от Getron Посмотреть сообщение
Протестил все коды, все идут, но С for DOS, настаивает на том что "Этого просто не может быть!!"
Ну и в чем заключается смысл этого предложения!?

Цитата Сообщение от Getron Посмотреть сообщение
последний код конечно вызывает доверие,но как это приподнести....я даже незнаю что stuff вполняет
Цитата Сообщение от Getron Посмотреть сообщение
грузанёт вопросами
Читайте книги, конспекты лекций, википедию, в конце-концов.
1
Getron
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 16
01.05.2011, 05:29  [ТС] #10
Прочитать не проблема, у нас в колледже ПС старое...а то что вы пишете это на "С" и на "С++"...
Но всё равно спасибо.
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
01.05.2011, 10:05 #11
Вот за такой ужас:
Код
float Distance(float x1, float y1, float x2, float y2) {
  return pow(pow(x1 + x2, 2.) + pow(y1 + y2, 2.), .5);
}
Я сразу пару ставлю...
Вот так надо:
Код
float Distance(float x1, float y1, float x2, float y2) {
  return sqrt((x1+x2)*(x1+x2) + (y1+y2)*(y1+y2));
}
С for DOS - какая у вас IDE?
Турбо С?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
01.05.2011, 18:17 #12
ValeryLaptev, Не сказал бы я что это ужас, ага. Плюс
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
return sqrt((x1+x2)*(x1+x2) + (y1+y2)*(y1+y2));
Вот так уж точно не стоит. pow не просто так существует.
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
01.05.2011, 23:33 #13
Цитата Сообщение от Getron Посмотреть сообщение
Прочитать не проблема, у нас в колледже ПС старое...
Дык, вперед за книги.

Цитата Сообщение от Getron Посмотреть сообщение
а то что вы пишете это на "С" и на "С++"...
Начать можно с отличий просто "C" от "C для DOS". Узнаете много нового.

Добавлено через 35 минут
Про sqrt согласен. Оно, например, быстрее pow(, .5) и по смыслу подходит лучше. Про умножение не согласен. Оно, например, может быть медленней pow(, 2) и по смыслу подходит меньше.
0
alex_x_x
01.05.2011, 23:47
  #14

Не по теме:

Цитата Сообщение от lemegeton Посмотреть сообщение
Про умножение не согласен. Оно, например, может быть медленней pow(, 2)
с трудом однако верится

0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
02.05.2011, 00:14 #15
Цитата Сообщение от lemegeton Посмотреть сообщение
Про sqrt согласен. Оно, например, быстрее pow(, .5) и по смыслу подходит лучше. Про умножение не согласен. Оно, например, может быть медленней pow(, 2) и по смыслу подходит меньше.
1. pow(x,2) - это вызов стандартной функции (с передачей параметров в стек, и получением результата, с прологом и эпилогом - пара десятков команд), а умножение - ОДНА команда процессора...
2. Я непосредственно по формуле эвклидова расстояния написал - как в учебнике. Так что яснее - некуда...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2011, 00:14
Привет! Вот еще темы с ответами:

Struct{...} - C++
Задача № 1 (динамические структуры) Написать программу создания динамической структуры, заданной рисунком, с вводом элементов с...

Struct - C++
У мя есть структура: указатель на предыдущий, следующий и значение... Ввод/вывод работает, а вот добавление после определённого значения...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

typedef struct .... - C++
Здравствуейте. Обьясните пожалуйсто новичку что означает этот код. typedef struct { long num_servers; long data_size; char*...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.05.2011, 00:14
Ответ Создать тему
Опции темы

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