Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите в размышлениях чайнику


Автор: AlexHHL 28.10.2006, 14:29
Приветствую!

Мне нужна помощ специалиста!!! 

У меня есть Borland C++ 5.02 и куча учебников по Си++, я совсем запутался какой у меня Си, и что к чему.
Вот например код "первой программы":

//HELLO.CPP
#include <iostream.h>
void main()
{ cout << "\nHello, World!\n";
}

и я уже не пойму для какого Си.
Сначала я думал что он похож на PHP, но знания ПХП в освоении Си мало чем помогают.

Если же в моём Borland C++ 5.02 с этим примером "Первой программы" нажать на кнопку "Compile This File" создаётся естественно файл с расширением .obj (как и должно быть вроде как), далее если нажать "Build project" или "Make project" создаётся файл с расширением .exe, который если запустить, буквально маргнёт окно командной строки, и собственно всё. Я это расцениваю как то что код программы не подходит для этого Borland C++ 5.02.

Там я читал ещё какие то библиотеки подключать надо что ли.
Вот и всё
Какой нибуть специалист может быть раскидает всё это в моей голове в кратце.

P.S. Извиняюсь за может какие нибуть неточности!

Автор: cyberstream 28.10.2006, 15:13
Код

Я это расцениваю как то что код программы не подходит для этого Borland C++ 5.02.

Код написан на С++ и будет одинакого работать на любом С++. 
Ты написал консольное приложение, которое самостоятельно выполняется, завершается и закрывает своё окно. 
Код

#include <iostream.h>
void main()
{  cout << "\nHello, World!\n";
    char ch;
    cin >> ch;

}

   В данном примере выведется строка Hello, World, после чего программа будет ожидать ввода символа с клавиатуры; это лишит её возможности немедленно завершиться и позволит увидеть результат работы программы.
   Ещё вариант - вызвать перед заверщением функцию getch() предварительно подключив модуль conio.h.  Остальные придумай сам.

Автор: Damarus 28.10.2006, 15:15
Цитата(AlexHHL @  28.10.2006,  15:29 Найти цитируемый пост)
я совсем запутался какой у меня Си

C стандартизирован, поэтому везде одинаковый. (правда Borland C++ 5.02 не соответствует стандарту)

Цитата(AlexHHL @  28.10.2006,  15:29 Найти цитируемый пост)
создаётся файл с расширением .exe, который если запустить, буквально маргнёт окно командной строки, и собственно всё.

Так и должно быть. Программа вывела в консоль "Hello, World!" и завершилась.

Автор: Yra 28.10.2006, 15:54
AlexHHL, а что бы ты мог насладиться своим консольным приложением,
в конце проги напиши : 
Код

#include <iostream.h>
void main()
{  cout << "\nHello, World!\n";
    cin.get();                                ///эту строку пиши!!! так прикольней!!!!
}


Автор: XAHbl4 28.10.2006, 20:01
Если тебе эти консольные приложения не нравятся, так отложи эту книгу и возьми другую где про простые приложения все понятно написано  smile 
А если все же решил пробовать на консольных то тогда уже бери и создавай.
New->Consol Wizard
Вот небольшой пример
Код

float a,b,c,CpegHee; //Ввод переменных
print("BBeguTe 3 4ucJIa \n"); //Вывод на экран 
scanf("%f",&a); //Сканирование введенного 1-го числа и присвоение его к переменной а
scanf("%f",&b); //Сканирование введенного 2-го числа и присвоение его к переменной b
scanf("%f",&c);  //Сканирование введенного 3-го числа и присвоение его к переменной c
printf("CpegHee %5f",CpegHee=((a*a+b*b+c*c)/3)*0.5); //Расчет средних трех квадратических чисел
getch();


Если хочешь то поразбирайся может и понравится  smile 

Только не забудь подключить библиотеку <conio.h>

Автор: AlexHHL 29.10.2006, 06:01
Ох спасиб! Я зделал большой шаг))
только вот из последнего сообщения, что значит не консольные преложения, а простые приложения

Автор: Yra 29.10.2006, 11:47
AlexHHL, это приложения с кнопками, окнами редактирования и всем , что 
ты видешь в винде98-ХР.

ты заходи , если что!!!! поможем! smile 

Автор: AlexHHL 29.10.2006, 16:10
Нука, нука это уже интересней - куда там заходить именно, на какую ссылку.
И ещё мне говорили что при помощи Си можно написать любую прогрмму, это правда или нет, или приведите примеры каких нибуть известных программ smile 

Автор: Yra 29.10.2006, 16:37
AlexHHL, 
Цитата

 куда там заходить именно, на какую ссылку.

я имею введу , что будут вопросы - обращайся.
Цитата

при помощи Си можно написать любую прогрмму, это правда или нет

в принципе ДА.........но не всегда для всех задач есть что-то универсальное.
Цитата

приведите примеры каких нибуть программ

на сщет извесных - незнаю.........а простых - на этом форуме их поищи.
они есть.

Автор: pandrew 30.10.2006, 11:00
Цитата(AlexHHL)
И ещё мне говорили что при помощи Си можно написать любую прогрмму, это правда или нет, или приведите примеры каких нибуть известных программ 

Тебя не обманули. smile 
Значительная часть ОС Windows любой версии написана на C и  C++. Используемый тобой компилятор Borland написан на C.
И вообще большинство программ на твоем ПК подаренных MS либо взятых в бессрочный лизинг написаны на C либо C++ (правда средствами фирмы Microsoft)

К сожалению использумый тобой компилятор Borland 5.02 выпуска 1995 года будет несколько тормозить освоение тобой современных технологий.
На сегодня: последний продукт фирмы Borland (Inprise) BDS 2006, который позволяет создавать прикладной и сиcтемный софт любого уровня сложности. Только для написания драйверов он не очень подходит.

Автор: AlexHHL 5.11.2006, 11:42
Приветствую!
Ошибка компилятора или что: вот например строка
Код

print("Что нибуть");


При компиляции пишет:
Call unefined function 'print'

У меня было такое с coat, но там всего лишь надо было поставить <<
А тут может быть компилятор мой древний или что!!!

Автор: FFFFFFF7 5.11.2006, 13:35
такой команды нет. Есть printf().
Цитата(pandrew @  30.10.2006,  11:00 Найти цитируемый пост)
Используемый тобой компилятор Borland написан на C.

Ага, щас smile Компилятор Бильдера основан на одном из лучших компиляторов С++ - это EDG С++ Front End. И компиляторы С++ пишем на С++, а не на Си.
Цитата(pandrew @  30.10.2006,  11:00 Найти цитируемый пост)
BDS 2006, который позволяет создавать прикладной и сиcтемный софт любого уровня сложности. Только для написания драйверов он не очень подходит.

прекрасно переваривает асм - значит подходит. Но почему "не очень"? Что мешает?

Автор: AlexHHL 5.11.2006, 16:51
printf() - одна и та же ошибка

Автор: Yra 5.11.2006, 18:43
AlexHHL,  а подключил все библиотеки? 
 например #include <conio.h>
 

Автор: FFFFFFF7 5.11.2006, 19:04
stdio.h ?
Цитата(Damarus @  28.10.2006,  15:15 Найти цитируемый пост)
C стандартизирован, поэтому везде одинаковый. (правда Borland C++ 5.02 не соответствует стандарту)

Среда не соответстввует? ЛОЛ!
А язык не может не соответствовать стандарту. Другое дело - компилятор.
Цитата(Yra @  29.10.2006,  16:37 Найти цитируемый пост)
 не всегда для всех задач есть что-то универсальное.

универсальный - Си. Другое дело - подходящий язык программирования. Но это не значит:что можно написать ПХП, Сикле, например, то в Си не напишешь. А значит это, что для конкретной задачи есть более подходящий язык программирования, который и существует для решения подобной задачи. 
Цитата(AlexHHL @  29.10.2006,  16:10 Найти цитируемый пост)
И ещё мне говорили что при помощи Си можно написать любую прогрмму, это правда или нет, или приведите примеры каких нибуть известных программ

Фря, Линух, Форточки, тот браузер, через который ты всё это читаешь =)))
Цитата(Yra @  5.11.2006,  18:43 Найти цитируемый пост)
например #include <conio.h>

 :No: 

Автор: Damarus 5.11.2006, 19:36
Цитата(FFFFFFF7 @  5.11.2006,  19:04 Найти цитируемый пост)
Среда не соответстввует? ЛОЛ!А язык не может не соответствовать стандарту. Другое дело - компилятор.

 smile  smile  smile  Про компилятор и говорилось.

Автор: Yra 5.11.2006, 20:24
FFFFFFF7, ну так, я к примеру сказал!!!
я в си неочень - уже позабывал!

Автор: AlexHHL 10.11.2006, 16:23
А какие нибуть ещё надо библиотеки подключать кроме
#include <conio.h>
#include <iostream.h>

Или вообще приведите точный код, а не отрывок программы

Код

float a,b,c,CpegHee;
printf("BBeguTe 3 4ucJIa \n");
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
printf(" CpegHee %5f",CpegHee=((a*a+b*b+c*c)/3)*0.5);
getch();


, а там я уже разберусь smile !!!

Автор: pandrew 10.11.2006, 16:47
Возьми в руки книжку (например Керниган и Ричи) читай и выполняй примеры. Будет непонятно - спросишь.

Автор: AlexHHL 1.1.2007, 17:55
Приветствую!

Вот что не понятно, как сделать, что бы в выполяемой программе текст российскими буквами писался.
При чём в самом Borland C++ 5.02 русские буквы точно такие же пишутся, я бы сказал "криво", соответственно если написать в Си какое нибуть слово и скопировать его в другой тестовый редактор, то слова будут понятны!!!

Автор: BreakPointMAN 1.1.2007, 18:13
AlexHHL, в поиск.

Автор: AlexHHL 1.1.2007, 19:23
вы имеете поиск, типа help программы. То он у меня не работает))

Автор: mr.Anderson 1.1.2007, 20:32
Нет, имеется в виду поиск по форуму. smile Эту тему обсуждали уже раз 100, сам видел.

Автор: AlexHHL 6.1.2007, 18:47
Написал глобальную переменную для всей программы int number = 0; и в каждой функции увеличивал значение на единицу (++), за тем в главной функции написал:
Код

cout << "Количество функций в программе: " << number << endl;

и т.д.
Функций в программе, 5, а он мне пишет 8 т.е. увеличивает на 3.
Ничего не могу понять, компилятор ни каких ошибок не выводит. Это конечно не важно, но всё таки из-за чего такое может быть.
Не знаю но думаю нужно привести весь код так, что не обижайтесь.
я только, что начал изучать основы по этому не прикалывайтесь.
в программе ничего полезного)))), я просто по учебнику пробую некоторые вещи, смотрю как работают, эксперементирую и некоторые названия функций и переменных тупые, но всё таки

Код

#include <iostream.h>

int number = 0;

void emploee(int age, float salary)
{
 cout << "Возраст: " << age << " Лет(года)" << endl; 
 cout << "Оклад: " << salary << " $" << endl; //Про возраст и оклад это с учебника взято
 number++;
}

void big_small(int a, int b, int c)
{
 int big = a;
 int small = a;
 if(b > big)
    big = b;
 if(b < small)
    small = b;
 if(c > big)
    big = c;
 if(c < small)
    small = c;
 cout << "Самое маленькое: " << small << endl;
 cout << "Самое беольшое: " << big << endl;
 number++;
}

int add_values(int q, int w)
{
 number++;
 return(q+w);
}

void display(int *a, int *b)
{
 *a = 1001;
 *b = 500;
 cout << "Переменные в функции display " << *a << " i " << *b << endl;
 number++;
}

void main()
{
 char ch;
 int age, q, w, big = 2002, small = 2007, number = 25;
 float salary;
 big_small(1,2,3);
 big_small(500,1000,2000);
 big_small(1000,0,100);
 cout << "Ввести возраст \n";
 cin >> age;
 cout << "Ввести оклад: \n";
 cin >> salary;
 emploee(age, salary);
 cout << "Ввести первое слогаемое: " << endl;
 cin >> q;
 cout << "Ввести второе слогаемое: " << endl;
 cin >> w;
 cout << q << "+" << w << "=" << add_values(q, w);
 cout << "\nДо функции display: " << big << " i " << small << endl;
 display(&big, &small);
 cout << "После dispaly: " << big << " i " << small << endl;
 number++;
 cout << "\nЛокальная переменная number: " << number;
 cout << "\nКоличество функций в программе: " << ::number << endl;
 cin >> ch;
}


Добавлено @ 18:48 
Блин только сейчас мысль проскочила:
Это наверное из-за того, что выполнение программы начинается с функции main, а она в свою очередь может вызывать одну и ту же функцию несколько раз например в этом месте:
Код

big_small(1,2,3);
big_small(500,1000,2000);
big_small(1000,0,100);

Автор: codelord 6.1.2007, 19:26
Цитата(AlexHHL @  6.1.2007,  14:47 Найти цитируемый пост)
Блин только сейчас мысль проскочила:Это наверное из-за того, что выполнение программы начинается с функции main, а она в свою очередь может вызывать одну и ту же функцию несколько раз например в этом месте:

 smile  правильно задать вопрос, решить половину вопроса.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)