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

Использование классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ найти функцию Аккермана http://www.cyberforum.ru/cpp-beginners/thread35648.html
Подскожите где ошибка. Здесь надо найти функцию Аккермана. #include "stdafx.h" int main () { int m,n,t; int ackr(int, int); scanf("%d %d ",&n,&m); t=ackr(n,m); printf("%d",t); }
C++ Ряды (задача) Задан текст, в котором присутствующие скобки. Проанализировать его с целью выявления и локализации ошибок в использовании скобок. Возможны три типа ошибок : а) несоответствие скобок по количествам; б) закрывающая скобка расположена к открывающей; в) отсутствующий текст между скобками. Результатом работы программы должно быть сообщение о типах допущенных ошибок и их место в тексте... http://www.cyberforum.ru/cpp-beginners/thread35618.html
Массивы C++
Добрый вечер,прошу помочь с задачей По квадратной матрице А построить матрицу B той же размерности. Элемент bij определяется таким способом: через aij проводятся диагонали, параллельные главной и побочной; Заранее благодарен за помощь...
C++ (Вопрос) Базовые понятия. Реализация разветвленных вычислительных процессов.
Добрый вечер прошу помочь с задачей: Определить, можно ли построить треугольник по заданным длинам сторон a, b, c. Если построение возможно, то определить тип треугольника: прямоугольный, тупоугольный, остроугольный, равносторонний, равнобедренный и тому подобное Для равностороннего треугольника – вычислить его высоту, для равнобедренного - медиану к основе. Заранее благодарен за помощь
C++ Разложить функцию f (x) в ряд Тейлора http://www.cyberforum.ru/cpp-beginners/thread35600.html
Добрый вечер,прошу помочь с двумя задачами... Для заданных n и m вычислить значение функции в, разложив функцию f(x) в ряд Тейлора. Аргумент функции f(x) изменяется от хn к хк с шагом D. Для вычисления факториала использовать рекурсивную функцию. Определить погрешность вычисления значения функции f(x). y=(1/((x^2)-1)^1/2);f(x)=x^(1/2);xn=-2;xk=2;delt=0.5;...
C++ Динамический массив такая задача... задать два вектора А и В , в вектор С поместить отрицательные элементы этих векторов, в вектор D положительные в возростающем порядке, а вектор Е - нулевые, найти минимальные по модулю элементы векторов А и В, в конце нужно заменить элементы вектора А - умножить на скаляр а - квадратный корень из индекса элемента...вот кое-что набросала..... #include <stdio.h> #include <conio.h>... подробнее

Показать сообщение отдельно
MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
23.05.2009, 12:55     Использование классов
писал на билдере, так что придется чуть подправить

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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
struct Telephon
{
        struct FIO
        {
                char surname[50];
                char name[50];
                char second_name[50];
        };
        FIO fio;
        char adress[100];
        int year;
        int number;
};
 
class TelBook
{public:
        TelBook(String Name);
        ~TelBook();
        void Dobavit(Telephon Dat);
        void Ydalit(char surname[]="", char name[]="",char second_name[]="",char adress[]="");
        void Ydalit(int number);
        String Naity(char surname[]="", char name[]="",char second_name[]="",char adress[]="");
        int Analiz(int year);
        void LoadFile(String Name);
        void SaveFile(String Name);
        int Length();
        Telephon Element(int index);
private:
void DelOne(int num);
Telephon Data[5000];
int len;
String NF;
} ;
 
TelBook::TelBook(String Name)\\требует имя файла с базой
{len=0;
NF=Name;
LoadFile(Name);}
 
TelBook::~TelBook()
{SaveFile(NF);}
 
Telephon TelBook::Element(int index)\\доступ к элементу
{ Telephon a;
if(index<len)a=Data[index];
return a;}
 
void TelBook::DelOne(int num)\\внутренняя, удаляет элемент в средине масива
{if(len<=num)return;
int i;
for(i=num;i<len-1;i++)
 Data[i]=Data[i+1];
len--;}
 
int TelBook::Length()\\количество элементов
{return len;}
 
int TelBook::Analiz(int year)\\возвращает количество элементов с годом
{
int i,j=0;
for(i=0;i<len;i++)
 if(Data[i].year==year)
  j++;
return j;
}
 
String TelBook::Naity(char surname[], char name[],char second_name[],char adress[])
{int i;            \\ищет в списке элементы удовлетворяющим записи
BOOL rs; \\ пустые строки в учет не берутся, 
              \\если вызвать просто Naity() выведет все записи
String s;
for(i=0;i<len;i++)
 {rs=true;
 if((rs)&&(StrLen(surname)>0))
  rs=surname==Data[i].fio.surname;
 if((rs)&&(StrLen(name)>0))
  rs=name==Data[i].fio.surname;
 if((rs)&&(StrLen(second_name)>0))
  rs=second_name==Data[i].fio.surname;
 if((rs)&&(StrLen(adress)>0))
  rs=adress==Data[i].fio.surname;
 if(rs)
  s+="\n"+String(Data[i].fio.surname)+" "+String(Data[i].fio.name)+" "+
  String(Data[i].fio.second_name)+" "+String(adress)+" : "+IntToStr(Data[i].number)
  +"/"+IntToStr(Data[i].year);
   }
return s;
}
 
void TelBook::Dobavit(Telephon Dat)\\ добавляет элемент если их меньше 5000
{if(len==5000)
 return;
Data[len]=Dat;
len++;}
 
void TelBook::Ydalit(char surname[], char name[],char second_name[],char adress[])
{int i;   \\ работает также как и поис, только удаляет
BOOL rs;
for(i=len-1;i>=0;i--)
 {rs=true;
 if((rs)&&(StrLen(surname)>0))
  rs=surname==Data[i].fio.surname;
 if((rs)&&(StrLen(name)>0))
  rs=name==Data[i].fio.surname;
 if((rs)&&(StrLen(second_name)>0))
  rs=second_name==Data[i].fio.surname;
 if((rs)&&(StrLen(adress)>0))
  rs=adress==Data[i].fio.surname;
 if(rs)DelOne(i);}
}
 
void TelBook::Ydalit(int number)\\удаляет одну запись номер которой равен number
{int i;                       \\вторую не ищет, т.к. 2 одинаковых номеров не должно быть
for(i=0;i<len;i++)
 if(number==Data[i].number)
  {DelOne(i);
  return;}
}
 
 
void TelBook::LoadFile(String Name)\\загружает базу из файла
{
FILE *F;
Telephon a;
F = fopen(Name.c_str(),"r");
if( F==NULL )
 {ShowMessage("ÍåâîçìîæГ*Г® îòêðûòü ГґГ*éë\n"+Name);
 return;}
char s[100];
AnsiString S;
int i=fgetc(F);
for(;i>0;i--)
 {S=fgets(s,100,F);
 S.SetLength(S.Length()-1);
 StrCopy(a.fio.surname,S.c_str());
 S=fgets(s,10,F);
 S.SetLength(S.Length()-1);
 StrCopy(a.fio.name,S.c_str());
 S=fgets(s,100,F);
 S.SetLength(S.Length()-1);
 StrCopy(a.fio.second_name,S.c_str());
 S=fgets(s,100,F);
 S.SetLength(S.Length()-1);
 StrCopy(a.adress,S.c_str());
 fread(&a.year, sizeof(int), 1, F);
 fread(&a.number, sizeof(int), 1, F);
 Dobavit(a);}
fclose(F);}
 
void TelBook::SaveFile(String Name)\\сохраняет базу
{if(len==0)return;
FILE *F;
char *s;
F = fopen(Name.c_str(),"wt");
if( F==NULL )
 {ShowMessage("ÍåâîçìîæГ*Г® ñîõðГ*Г*ГЁГІГј ГґГ*éë\n"+Name);
 return;}
int x;
fputc(len,F);
for(x=0;x<len;x++)
 {fputs(StrCat(Data[x].fio.surname,"\n"),F);
 fputs(StrCat(Data[x].fio.name,"\n"),F);
 fputs(StrCat(Data[x].fio.second_name,"\n"),F);
 fputs(StrCat(Data[x].adress,"\n"),F);
 fwrite(&Data[x].year, sizeof(int), 1, F);
 fwrite(&Data[x].number, sizeof(int), 1, F);}
fclose(F);}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru