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

Изучить и освоить приёмы разработки программ с использованием структур - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на вложенный цикл http://www.cyberforum.ru/cpp-beginners/thread733919.html
10 20 20 30 30 30 40 40 40 40 50 50 50 50 50 5 5 5 5 5 10 10 10 10 15 15 15
C++ Не могу найти ошибку в программе Даны действительные числа х1, у1, х2, у2, …,х10, у10. Найти периметр десятиугольника, вершины которого имеют соответственно координаты (х1, у1), (х2, у2), …, (х10, у10). (Определить подпрограмму вычисления расстояния между двумя точками, заданными своими координатами.) #include <stdio.h> #include <math.h> #include <conio.h> float A; float dlina(int a, int b) {return... http://www.cyberforum.ru/cpp-beginners/thread733906.html
C++ Напечатать числа в виде следующей таблицы
55555 6666 777 88 9 Мое решение неверное. Помогите, пожалуйста подкорректировать. for (int i=5; i<=9; i++)
Найти сумму ряда при введении с клавиатуры числа n C++
Дан ряд \sum_{n=o}^{k}\frac{{(-1)}^{n}}{(2n+1){2}^{2n+1}} Первое задание: программа без рекурсии. Вот что получилось, но вычисляется неправильно. #include <iostream> #include <conio.h> using namespace std;
C++ Алгоритм Хаффмана, реализация через структуры http://www.cyberforum.ru/cpp-beginners/thread733894.html
Добрый день, помогите пожалуйста найти ошибку в построении кодов Хаффмана. использую следующие структуры: struct haffman { char Sim; int Freq; char Code; };
C++ Стандартные потоки 1. Определить класс с именем TRAIN, содержащую следующие поля:  название пункта назначения;  номер поезда  время отправления  определить методы доступа к этим полям и перегруженные операции извлечения и вставки для объектов типа TRAIN. 2. Написать программу, которая выполняет следующие действия:  ввод с клавиатуры данных в массив, состоящий из восьми объектов типа TRAIN; записи должны... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
16.12.2012, 18:54     Изучить и освоить приёмы разработки программ с использованием структур
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
#include <cstdlib>
#include <ctime>
#include <string>
#include <iostream>
#include <iomanip>
 
struct MedicalRecord {
  std::string name;
  int birthYear;
  std::string disease;
  int duration;  
};
 
std::string getRandomName() {
  static const std::string names[] = {"Ivan", "Petr", "Ilya", "Sergey", "Alexander", "Stepan"};
  static const std::string surnames[] = {"Ivanov", "Petrov", "Sidorov", "Orlov", "Sokolov", "Ilyin", "Sergeyev", "Alexandrov", "Sidorov" };
  static const size_t namesSize = sizeof(names) / sizeof(std::string);
  static const size_t surnamesSize = sizeof(surnames) / sizeof(std::string);    
  return names[rand() % namesSize] + " " + surnames[rand() % surnamesSize];
};
 
std::string getRandomDisease() {
  static const std::string diseases[] = {"flu", "cold", "hepatitis", "enterovirus"};
  static const size_t numberOfDiseases = sizeof(diseases) / sizeof(std::string);
  return diseases[rand() % numberOfDiseases];
};
 
MedicalRecord getRandomMedicalRecord() {
  MedicalRecord result;
  result.name = getRandomName();
  result.birthYear = 1980 + rand() % 10;
  result.disease = getRandomDisease();
  result.duration = 2 + rand() % 4;
  return result;
};
 
std::ostream &operator<<(std::ostream &stream, const MedicalRecord &medicalRecord) {
  return stream << "MedicalRecord {" <<
    "name=" << medicalRecord.name <<
    ", birthYear=" << medicalRecord.birthYear <<
    ", disease=" << medicalRecord.disease <<
    ", duration=" << medicalRecord.duration <<
    "}";
};
 
template <class Iterator, class InsertIterator, class Predicate>
size_t copyIf(Iterator begin, Iterator end, InsertIterator destination, Predicate predicate) {
  size_t count = 0;
  while (begin != end) {
    if (predicate(*begin)) {
      *destination++ = *begin;
      ++count;
    }
    ++begin;
  }
  return count;
};
 
class DiseaseFilter {
 public:
  DiseaseFilter(const std::string &disease) : disease(disease) {}
  bool operator()(const MedicalRecord &medicalRecord) {
    return medicalRecord.disease == disease;
  }
 private:
  std::string disease;
};
 
int main(int argc, char *argv[]) {
  setlocale(LC_ALL,"rus");
  srand(time(0));
 
  size_t numberOfMedicalRecords = 20 + rand() % 5;
  MedicalRecord *medicalRecords = new MedicalRecord[numberOfMedicalRecords];
 
  std::cout << "Disease records:" << std::endl;
  for (int i = 0; i < numberOfMedicalRecords; ++i)
    std::cout << (medicalRecords[i] = getRandomMedicalRecord()) << std::endl;
  
  MedicalRecord *fluRecords = new MedicalRecord[numberOfMedicalRecords];
  size_t numberOfFluRecords = copyIf(medicalRecords, medicalRecords + numberOfMedicalRecords,
    fluRecords, DiseaseFilter("flu"));
  
  std::cout << "They got flu:" << std::endl;
  for (int i = 0; i < numberOfFluRecords; ++i)
    std::cout << fluRecords[i] << std::endl;
  
  delete [] fluRecords;
  delete [] medicalRecords;
  std::cin.get();
}
Добавлено через 21 секунду
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
#include <cstdlib>
#include <ctime>
#include <string>
#include <iostream>
#include <iomanip>
 
struct MedicalRecord {
  std::string name;
  int birthYear;
  std::string disease;
  int duration;  
};
 
std::string getRandomName() {
  static const std::string names[] = {"Ivan", "Petr", "Ilya", "Sergey", "Alexander", "Stepan"};
  static const std::string surnames[] = {"Ivanov", "Petrov", "Sidorov", "Orlov", "Sokolov", "Ilyin", "Sergeyev", "Alexandrov", "Sidorov" };
  static const size_t namesSize = sizeof(names) / sizeof(std::string);
  static const size_t surnamesSize = sizeof(surnames) / sizeof(std::string);    
  return names[rand() % namesSize] + " " + surnames[rand() % surnamesSize];
};
 
std::string getRandomDisease() {
  static const std::string diseases[] = {"flu", "cold", "hepatitis", "enterovirus"};
  static const size_t numberOfDiseases = sizeof(diseases) / sizeof(std::string);
  return diseases[rand() % numberOfDiseases];
};
 
MedicalRecord getRandomMedicalRecord() {
  MedicalRecord result;
  result.name = getRandomName();
  result.birthYear = 1980 + rand() % 10;
  result.disease = getRandomDisease();
  result.duration = 2 + rand() % 4;
  return result;
};
 
std::ostream &operator<<(std::ostream &stream, const MedicalRecord &medicalRecord) {
  return stream << "MedicalRecord {" <<
    "name=" << medicalRecord.name <<
    ", birthYear=" << medicalRecord.birthYear <<
    ", disease=" << medicalRecord.disease <<
    ", duration=" << medicalRecord.duration <<
    "}";
};
 
template <class Iterator, class InsertIterator, class Predicate>
size_t copyIf(Iterator begin, Iterator end, InsertIterator destination, Predicate predicate) {
  size_t count = 0;
  while (begin != end) {
    if (predicate(*begin)) {
      *destination++ = *begin;
      ++count;
    }
    ++begin;
  }
  return count;
};
 
class DiseaseFilter {
 public:
  DiseaseFilter(const std::string &disease) : disease(disease) {}
  bool operator()(const MedicalRecord &medicalRecord) {
    return medicalRecord.disease == disease;
  }
 private:
  std::string disease;
};
 
int main(int argc, char *argv[]) {
  setlocale(LC_ALL,"rus");
  srand(time(0));
 
  size_t numberOfMedicalRecords = 20 + rand() % 5;
  MedicalRecord *medicalRecords = new MedicalRecord[numberOfMedicalRecords];
 
  std::cout << "Disease records:" << std::endl;
  for (int i = 0; i < numberOfMedicalRecords; ++i)
    std::cout << (medicalRecords[i] = getRandomMedicalRecord()) << std::endl;
  
  MedicalRecord *fluRecords = new MedicalRecord[numberOfMedicalRecords];
  size_t numberOfFluRecords = copyIf(medicalRecords, medicalRecords + numberOfMedicalRecords,
    fluRecords, DiseaseFilter("flu"));
  
  std::cout << "They got flu:" << std::endl;
  for (int i = 0; i < numberOfFluRecords; ++i)
    std::cout << fluRecords[i] << std::endl;
  
  delete [] fluRecords;
  delete [] medicalRecords;
  std::cin.get();
}
 
Текущее время: 16:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru