В примерах к лабораторным занятиям и в лекциях программы написаны для установленной в компьютерных классах версии С++ из Borland Developer Studio 2006. До включения в студию среда называлась C++ Builder, в ней должно все работать и так.
Если вы пользуетесь дома другими средами разработки, то понадобятся некоторые изменения, например:
Для С вместо С++ в консольном приложении без классов:
- выделение памяти не new/delete, а функциями calloc/free
- тип структуры является меткой в пространстве структур, а не отдельным типом, и используется только совместно со словом struct (struct TElem вместо просто TElem)
- передача параметра по ссылке(&) не возможна, можно только явно по адресу(*): void f(int *n){ *n=10;) вызов: int n; f(&n); вместо в C++: void f(int &n){ n=10;) и вызов: int n; f(n); (неявная передача адреса по ссылке)
- return обязателен в любой функции, даже в самом конце тела функции с результатом void
- и другие нюансы есть...
Для C++ из Code::Blocks IDE
- результатом функции main должен быть int, соответственно во всех return main надо указать целое число в качестве результата, например, return 0;
- не нужна руссификация (в русской версии), она встроенная - не нужно подключать модуль window.h и вызывать SetConsoleCP и SetConsoleOutputCP
- задержка экрана перед завершением программы выполняется автоматически - не нужно вызывать getch и подключать conio.h можно использовать ввод символа или символов с помощью scanf char ch=0; scanf("%c", &ch);
- randomize надо заметить на srand из того же модуля - вызовите srand(time(0)); и подключите модуль time.h для работы с временем
- полный путь к программе не должен содержать пробелов и символов кириллицы, например, папок "Рабочий стол", "Мои документы", "Мои программы", "Проги" и т.д.
Для C++ из Visual Studio
- в начале программы в зависимости от версии надо подключить особый модуль: #include "stdafx.h" либо #include "pch.h"
- модули языка С могут подключатся без указания расширения с добавлением буквы с, например, вместо <stdio.h> можно просто <cstdio>
- если результатом функции main должен быть int, то во всех return main надо указать целое число в качестве результата, например, return 0;
- КОДИРОВКИ - в зависимости от версии если не работает указанный в примере способ руссификации, то попробуйте setlocale(LC_ALL, "RUS"); (подключите <locale.h> или <clocal>) или конкретную кодировку setlocale(LC_ALL, "ru_RU.ANSI"); или setlocale(LC_ALL,"ru_RU.UTF-8"); Кодировка должна совпадать с кодировкой, в которой сохранен текстовый файл, из которого происходит чтение (в лаб.7) и работа в среде прогаммирования.
- чтобы использовать scanf нужно в начале программы добавить указание: #pragma warning(disable: 4996) , если не получится, можно заменить все же scanf на scanf_s
- задержка экрана - замените getch на _getch , либо попробуйте system("pause");
- randomize надо заметить на srand из того же модуля - вызовите srand(time(0)); и подключите модуль time.h для работы с временем
Если что-то забыла или перепутала, напишите, и добавлю информацию сюда для общего пользования.
|