Форум: Форум C++Разное
Новые темы: 00
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибки компиляции программы. Conversion.cpp:28: error: expected ';' before "cout"
 
 автор: Deck   (07.11.2011 в 12:48)   письмо автору
 
 

Всем доброго времени суток. Я начал учиться по этой книге. Переписал этот код с градусами и сохранил в conversion.cpp (все это делал в Dev c++). Скомпилировать в dev c++ у меня не получилось, так как выдало 3 ошибки ( 1- Conversion.cpp:25: error: `nFahrenheit' undeclared (first use this function), 2- Conversion.cpp:25: error: (Each undeclared identifier is reported only once for each function it appears in.), 3- Conversion.cpp:28: error: expected `;' before "cout" )
Вот код который я видимо неправильно переписал с книги:
//
//  Программа для преобразования
//  градусов Цельсия в градусы Фаренгейта:
//  Fahrenheit = NCelsius * (212 - 32)/100 + 32
//
#include <stdio.h>
#include <iostream.h>
int main (int nNumberofargs, char* pszArgs [])
{
    // Введите температуру в градусах Цельсия
    int nNCelsius;
    cout << "Введите температуру по Цельсию: ";
    cin  >> nNCelsius;
    
    // для приведенной формулы преобразования
    //вычислим преобразующий множитель
    int nNFactor;
    nNFactor = 212 - 32;
    
    // используем вычисленный множитель для
    // преобразования градусов Цельсия в
    // градусы Фаренгейта
    
    int NFahrenheit;
    nFahrenheit = nNFactor * nNCelsius/100 + 32
    
    // вывод результатов
    cout << "Температура по Фаренгейту: ";
    cout << nFahrenheit;
    
    return 0;
}

Дальше я скачал и установил Visual Studio 2010 открыл файл, но не нашел компилятор. Может кто-нибудь подскажет где он, и есть ли он вообще там. Заранее благодарен.

  Ответить  
 
 автор: cheops   (07.11.2011 в 12:57)   письмо автору
 
   для: Deck   (07.11.2011 в 12:48)
 

У вас точки с запятой нет в конце этой строки
 nFahrenheit = nNFactor * nNCelsius/100 + 32

PS Под новые вопросы, лучше заводить новые темы.

  Ответить  
 
 автор: cheops   (07.11.2011 в 13:04)   письмо автору
 
   для: Deck   (07.11.2011 в 12:48)
 

>Дальше я скачал и установил Visual Studio 2010 открыл файл, но не нашел компилятор.
>Может кто-нибудь подскажет где он, и есть ли он вообще там.
Чтобы откомпилировать файл, нужно создать проект. Причем из огромного множества вам нужно выбрать консольный проект для Win32. В настройках обязательно укажите, чтобы он был пустым, иначе он вам создаст управляемый код, да еще и под UNICODE с нестандартным именованием функций.

Вообще со студией сейчас управляться не просто, особенно, после того, как ей стукнуло 20 лет, а Microsoft стала ориентироваться на управляемый код .NET. Если вам интересен этот компилятор, лучше давайте пошаговые приемы работы с ним в отдельной теме обсудим (или даже в нескольких темах).

  Ответить  
 
 автор: cheops   (07.11.2011 в 13:10)   письмо автору
 
   для: Deck   (07.11.2011 в 12:48)
 

Я поправил вашу программу в 4 местах (указаны номерами с комментариями), после этого она компилируется в Visual Studio.
#include <stdio.h>
// 1. Согласно стандарту сейчас .h не указываются
#include <iostream>
// 2. Нужно обязательно указывать пространство имен
// если хотите вместо std::cout писать cout
using namespace std;

int main (int nNumberofargs, char* pszArgs [])
{
  // Введите температуру в градусах Цельсия
  int nNCelsius;
  cout << "Введите температуру по Цельсию: ";
  cin  >> nNCelsius;
     
  // для приведенной формулы преобразования
  //вычислим преобразующий множитель
  int nNFactor;
  nNFactor = 212 - 32;
     
  // используем вычисленный множитель для
  // преобразования градусов Цельсия в
  // градусы Фаренгейта
  // 3. Язык С++ чувствителен к регистру
  // NFahrenheit и nFahrenheit - две разные переменные
  int nFahrenheit;
  // 4. Точки с запятой в конце выражений обязательны
  nFahrenheit = nNFactor * nNCelsius/100 + 32;
     
  // вывод результатов
  cout << "Температура по Фаренгейту: ";
  cout << nFahrenheit;
   
  return 0;
}

  Ответить  
 
 автор: Deck   (07.11.2011 в 14:43)   письмо автору
 
   для: cheops   (07.11.2011 в 13:10)
 

Огромное спасибо, теперь все скомпилировалось. Но должно ли при открытии .ехе файла появляться окно командной строки(cmd.exe), а не программа куда вписывать значения?
Еще такой вопрос возможно не использовать программы типа дев и другие, а просто писать например в блокноте, и отдельным компилятором создавать программы?

P.S. извиняюсь что написал в ту тему, впервые на этом форуме, не освоился еще.

  Ответить  
 
 автор: cheops   (07.11.2011 в 15:16)   письмо автору
 
   для: Deck   (07.11.2011 в 14:43)
 

>Но должно ли при открытии .ехе файла появляться окно командной строки(cmd.exe), а не
>программа куда вписывать значения?
Да так и должно быть. Для того, чтобы создавать оконные приложения потребуются более сложные методы кодирования. Дело в том, что C/C++ это очень низкоуровневые языки с очень высокой эффективностью. Именно на них разрабатывают системное программное обеспечение: операционные системы, драйвера, базы данных и т.п. Обратной стороной медали является необходимость прописывать все явно, что выливается в огромные объемы кода и библиотеки. Поэтому изучать C++ трудно, а зачастую и не очень интересно (так как на первом этапе необходимо иметь дело с консолью - командной строкой). Однако, изучение C++ вам окупится с лихвой, любой другой язык вы сможете изучить в самое короткое время и ничто вас уже не удивит и не остановит в программировании. Ну за исключением символьно-декларативного направления и баз данных - там своя история и знание C++ уже не поможет, однако, все остальные языки будут вам доступны с минимальными усилиями. Ну и еще небольшой секрет - C++-разработчики, коих довольно много и которые контролируют все жизненно-важные направления в IT, не считают за программистов разработчиков, которые не знают C++. Поэтому без C++ получить зеленый свет даже в тех областях, где он не нужен, довольно трудно.

>Еще такой вопрос возможно не использовать программы типа дев и другие, а просто писать
>например в блокноте, и отдельным компилятором создавать программы?
Да, это возможно, однако компилировать и линковать файлы вам придется в командной строке (это не простое искусство даже для разработчиков со стажем). Да и отладчика под рукой не будет - вы не сможете осуществлять пошаговую трассировку программы (а это очень удобно во время отладки, которой будет довольно много). Если вы только начинаете изучать язык, лучше привыкнуть к интегрированным средам разработки - это все-равно рано или поздно потребуется. Да и принято в среде C++-разработчиков ими пользоваться - трудно будет общаться на одном языке с другими и будете выглядеть белой вороной (особенно в Windows, хотя UNIX-подобных системах компиляция в командной строке как раз очень распространена).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования