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

Объясните прогу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс рисующий несколько элипсов http://www.cyberforum.ru/cpp-beginners/thread593067.html
нужно написать класс рисующий несколько элипсов и при помощи клавиатуры чтобы можно было их перемещать по экрану....если кто знает или может напишите пжлст( и добавьте коменты по возможности)......заранее благодарю
C++ Рекуроентные нейронные сети. РНС Элмана Пишу рекуррентную сеть для распознавания хаотического (детерменированного) временного ряда (к примеру ряд Энонна), но это не так важно. Проблем в том, что уже переписываю третий раз, а видимо делаю какие-то ошибки в самом алгоритме обучения или распространения образа и обратного распространения ошибки. Использую метод скользящего окна, модифицирую по методу градиентного спуска и обучаю по... http://www.cyberforum.ru/cpp-beginners/thread593066.html
C++ Прокомментировать код
Может кто нибудь помочь с комментариями просто очень надо) // x.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "stdafx.h" #include "iostream" using namespace std; class massiv {public:
Вычисление объема цилиндра C++
// x.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" // Вычисление объема цилиндра #include <stdio.h> #include <conio.h> #include <locale.h> #define PI 3,1415926 fioat v(float r, float h)
C++ Функция для обработки строк http://www.cyberforum.ru/cpp-beginners/thread593028.html
Написать функцию, возвращающую самое длинное слово в строке.
C++ Вычисление следа матрицы и определителя воббщем надо реализовать вычисление следа матрицы и определителя алгоритм для следа : #include <stdio.h> typedef int *pInt; main() { int N,M; pInt *a; int summa=0,i,j; подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7184 / 4350 / 634
Регистрация: 29.11.2010
Сообщений: 11,843
01.06.2012, 02:47     Объясните прогу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <fstream.h>
#include <iostream.h>
#include <stdio.h>
#include <windows.h>
 
void main()
{   
    add();
    screen();
    stop();
    sort();
    stop();
}

рукалицо.
Мой вам совет - читайте литературу. С теми знаниями, которые вы получите, устроиться на работу не сможете.

Сейчас прогу объясню.

Добавлено через 44 минуты
Цитата Сообщение от ioane Посмотреть сообщение
Объясните действие проги, а то препод на паре дала ее и толком ничего не растолковала
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
// объявление БОРЛАНДОВСКИХ заголовочных файлов
#include <fstream.h> // библиотека для работы с файлами, у нормальных людей #include <fstream> 
#include <iostream.h> // библиотека для ввода-вывода (I/O), у нормальных людей #include <iostream> 
#include <stdio.h> // библиотека для ввода-вывода (I/O) языка С, у нормальных людей её не будет, т.к. она включена в предыдущую
#include <windows.h> // хрен знает что здесь делает этот инклюд
 
struct FAIL // объявляем структуру FAIL                         
{
    char a[20] ;int k; // с двумя полями: символьный массив и число типа int
};
 
struct list  // объявляем структуру list                    
{
    FAIL fail;list *next;  // с двумя полями: структурной переменной FAIL и указателем на след. структуру типа list
};
 
typedef list list1; // даем новое имя структуре (синоним)
list1 *first=NULL;int len=0; // объявляем указатель на структуру list, глобальную переменную len = 0 (хотя все глобальные переменные итак равны 0 при объявлении) 
// P.S. использование глобальных переменных нежелательно, Это моветон. 
 
void begin(FAIL val) // объявляем функцию begin, принимающую в качестве параметра структурную переменную типа FAIL          
{
    list1 *prom=new list1; // объявляем указатель на новую структурную переменную типа list и выделяем под неё память
    prom->fail=val; // инициализируем поля новой структурной переменной. 
    prom->next=first; // поле следующий элемент теперь указывает на первую
    first=prom; // указатель на начало теперь указывает на нашу новую структурную переменную list
    len++; // увеличиваем счетчик на единицу
}
 
void sort() // объявляем  и описываем функцию сортировки                
{       
    for(char a='a';a<='z';a++) // от a до z
    {list1 *prom=first;  // объявляем указатель на структурную переменную типа list и инициализируем его на на начало
    if(!prom) // если он равен NULL
    {cout<<"list chistyi"; // выводим, что список пуст и выходим
    return;}
    while(prom) // пока указатель не равен NULL
    {if(prom->fail.a[0]==a) // если  первая буква поля fail структруной переменной list равно параметру цикла
    cout<<prom->fail.a<<endl; // выводим поле fail на экран
    prom=prom->next;}} // переходим далее по списку (prom теперь равен собственному полю next, где хранится указатель на след. структурную переменную
    cout<<endl;
}
 
void screen() // функция вывода на экран                        
{
    list1 *prom=first;  // объявляем указатель на структурную переменную типа list и инициализируем его на на начало
    if(!prom) // если указатель равен нулю, то выводим, что список пуст и выходим из функции
    {cout<<"list chistyi";
    return;}
    cout<<"list:\n";
    while(prom) // пока указатель не равен нулю
    {cout<<prom->fail.a<<"  "<<prom->fail.k<<endl; // выводим значения свойст структуры
    prom=prom->next;} // переходим дальше по списку
    cout<<endl;
}
 
bool test(CHAR a[20]) // функция поиска слова в списке. по хорошему писать надо char            
{
    list1 *prom=first; // список на начало
    if(!prom) // если список пуст
        return 1; // вернуть истину
    while(prom)
    {
        if(strcmp(a,prom->fail.a)==0) // если значение совпадает с полем структурной переменной
        {prom->fail.k++; // увеличиваем значение свойства k на единицу (инкримируем его)
        return 0;} // возвращаем ложь
        prom=prom->next; // перемещаемся дальше по списку
    }return 1; // вернуть истину (если прошлись по всему списку и не нашли слова)
}
 
void add() // функция добавления        
{
    char *p=new char[20]; // выделяем память 
    FILE *f1=NULL; // объявляем указатель для работы с файлом
    do
    {
        cout<<"input filename";
        cin>>p; // считываем имя файла
        system("cls"); // очищаем экран
        f1=fopen(p,"r"); // открываем файл с режимом только чтение
    }
    while(!f1); // делать пока указатель равен NULL
    fstream f(p,ios::in); // открываем поток записи в файл 
              // почему в одном случае используется С-шный стиль, в другом С++шный непонятно
    delete []p; // освобождаем память
    char a[20]; FAIL b;b.k=1;
    while(!f.eof()) // пока не конец файла
    {
        f>>a; // считываем значение с файла в переменную а
        strlwr(a);
        if(test(a)) // если значение не найдено
        {
            strcpy(b.a,a); // добавляем в список
            begin(b);
        }
    }
    f.close();fclose(f1); // закрываем файлы
}
 
void stop() // функция паузы                    
{
    system("pause");system("cls"); //пауза, очистка экрана
}   
 
void main() // ахтунг, ошибкен! По стандарту принято писать int main()
{   
    add();
    screen();
    stop();
    sort();
    stop();
}
Вот, написал как мог. В чем-то могу быть не совсем корректным, всё-таки час не ранний) Надеюсь поможет. В целом, программа должна работать со списком.
Что могу сказать еще: стиль, в котором написано - г**но. Мешается синтаксис языков С и С++. А компилятор, в котором это все оформлено вобще пора бы сжечь, а прах развеять по ветру.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru