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

разбираем исходный код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ЛАБА Обработка ведомости студенческой группы http://www.cyberforum.ru/cpp-beginners/thread556735.html
Очень нужна помощь,прошу! Нам надо сделать лаб.работу по информатике,у меня есть заготовка которую дал учитель,но она почему то тоже с ошибками,помогите найти ошибки в ней,очень прошу #include...
C++ Как узнать исходный код программы? Есть файл с простой программой, мне надо узнать его исходный код. как это сделать? http://www.cyberforum.ru/cpp-beginners/thread556717.html
C++ Функция getline в условии while
Здравствуйте! Перевожу код с c++ на c#. Но возникла проблема с условием цикла while while(getline(cin,S)) {...} Почитал в интернетах про getline, написано, что считывает с определенными...
Считывание текста из файла и вывод его на экран C++
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с гласной буквы, на прописную.
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить... http://www.cyberforum.ru/cpp-beginners/thread556697.html
Программу написать в двух вариантах: со стандартной обработкой массивов и обработкой с помощью указателей. Размерность массивов задается именованной константой. Предусмотреть тестирование на всех...
C++ тестовые вопросы Добрый вечер, требуется подсказка по трем вопросам из тестов. 1. Заголовок функции имеет вид: void f( float a, float b, float& c); Укажите правильные варианты вызова функции, если переменные в... подробнее

Показать сообщение отдельно
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
23.04.2012, 23:06
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
#include <time.h>
#include <stdio.h>
#include <vcl.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
//программа предназначена для работы с массивом информации о людях
//отчасти призвана дать ответ на вопрос: кто выше, самый мелкий мужик или самая высокая
// баба?
//массив формируется случайным образом,
//в него записываются структуры следующего содержания:
// 
#pragma argsused
struct human
{
char name[256];//имя человека
bool sex;      //его пол
int height;    // и его рост.
};//теперь эта структура может использоваться на равне со встроенными типами данных (int float char итд а теперь ещё и human)
// например, мы можем задать массив таких структур.
const int N = 7;//всего семь записей будут хранится в массиве
human G[N];    //вот он. массив со структурами. Его размер 7. Это будут наши семь человек
//в нём хранится семь структур, каждая содержит имя, пол и рост одного из семи человек 
 
//при запуске программы вызовется функция main
 
void RandomFill()//функция main (ниже) первым делом вызывает эту функцию, чтоб заполнить массив информацией.
{
//суть такова: каждому из семи человек в массиве, даётся случайное имя, фамилия, и рост.
char * femaleNames[5] = {"Helen", "Maria", "Suzanna", "Haruka", "Elisa"};//мы берём случайное число от 0 до 4 и присваиваем очередному человеку имя из этого массива 
char * maleNames[5] = {"Eugene", "John", "Ivan", "Jack", "Gregory"};//как видишь это массивы заранее определённых строк.
char * secondNames[5] = {"Doe", "Snuff", "Nyon", "Melt", "House"};//есть отдельный массив мужских и отдельный женских имён
 
for (int i = 0; i < N; i++)//следующий цикл повторяется для каждого человека, для первого, второго, третьего, четвёртого, пятого, шестого, седьмого
{
G[i].sex = rand() % 2;//функция rand выдаёт случайное число от 0 до 32768, чтобы получить число от 0 до 1 мы находим остаток от деления rand() на 2
if (G[i].sex)//условие выполнится, если это число равно 1. Это будет означать, что пол  мужской.
{
sprintf(G[i].name, "%s %s", maleNames[rand() % 5], secondNames[rand() % 5]);//в этом случае мы копируем в строчку G[i].name
//имя и фамилию, которую будет иметь человек под номером i, так, словно мы выводили б это на экран. только информация сохраняется в строчке.
}
else
{
sprintf(G[i].name, "%s %s", femaleNames[rand() % 5], secondNames[rand() % 5]);//мы выполняем либо предыдущую строчку, либо эту в зависимости от того, женское имя мы
//хотим скопировать в человека или мужское.
}
G[i].height = 120 + rand() % 90;//ну и наконец мы записываем в рост iго человека величину от 120 до 210, угадай как она берётся.
}
}
 
//эта функция просто в цикле выводит на экран всё содержимое нашего массива
void PrintGroup()
{
for (int i = 0; i < N; i++)
{                       //выражение ниже равносильно "если sex==1 сout<<'mugik' иначе cout<<'baba' "
cout << G[i].name << ", " << (G[i].sex ? "mugik" : "gencnh") << ", height " << G[i].height << " cm\n";
}//имя и возраст тоже выводятся.
}//конец вывода
 
bool Test2()//а это - одна из важнейших наших функций, которая должна ответить нам да или нет.
{//кто выше, самый мелкий мужик или самая высокая баба?
int minF = 0, minM = 0;
 
for (int i = 0; i < N; i++)//мы проверяем каждого человека в цикле, перебирая их номера от 0 до N-1
{
if (G[i].sex)//если очередной человек мужик, 
{
if (G[i].height < minM || minM == 0)//и если этот человек меньше самого малого из до сих пор проверенных (либо ещё никого и не проверяли даже)
minM = G[i].height;//то самым мелким мужиком становится его рост minM
}
else//если же это был не мужик, а баба
{
if (G[i].height >minF || minF == 0)//то сравниваем его рост с максимальным бабским
minF = G[i].height;//и если этот баба выше других баб, запоминаем его рост в minF кто выше, самый мелкий мужик или самая высокая баба?
}
}
 
return minM < minF;//заканчиваем функцию, отдавая ответ на вопрос кто выше, самый мелкий мужик или самая высокая баба?
}//если баба, ответ true
 
int main(int argc, char ** argv)//вот с этой функции начнётся запуск программы.
{
srand(time(0));                //программа будет брать случайную информацию о людях
                               //для работы генератора случайных чисел нужно задать случайное "зерно", суть не в этом
 
RandomFill();                //Первое наше действие это заполнение массива случайной информацией
PrintGroup();                //второе - вывод всего, чем заполнил наш генератор массив.
 
cout << "\n";                  //новая строка
cout << "Test2 = " << (Test2() ? "yes" : "no") << "\n";//запускаем функцию проверки и выводим на экран ответ: Если функция сказала true,
//то на экран выводится yes
system("pause");//пауза в консоли перед выходом
return 0;
 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru