Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Что не так?  (Прочитано 10389 раз)
0 Пользователей и 1 Гость смотрят эту тему.
IgnisFatuus
Постоялец

ru
Offline Offline

« : 05-04-2012 18:42 » 

Код: (C++)
//
// Преобразование гр.Ц в градусы Фаренгейта
// Fahrenheit = NCelsius * (212 - 32) / 100 + 32
//
#include <stdio.h>
#include <iostream>
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;
}

Не собирается... Все по книге.. Где косяк?

Добавлено через 57 секунд:
пишет
Цитата
Project1.cpp: В функции «int main(int, char**)»:
Project1.cpp:11:2: ошибка: нет декларации «cout» в этой области видимости
Project1.cpp:11:2: замечание: suggested alternative:
/usr/include/c++/4.6/iostream:62:18: замечание:   «std::cout»
Project1.cpp:12:2: ошибка: нет декларации «cin» в этой области видимости
Project1.cpp:12:2: замечание: suggested alternative:
/usr/include/c++/4.6/iostream:61:18: замечание:   «std::cin»
« Последнее редактирование: 05-04-2012 18:55 от Finch » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 05-04-2012 18:53 » 

Есть такое понятие, как область видимости. И зона имен. Второе на английском называется namespace. Все стандартные С++ имена находятся в зоне имен std. Следовательно нужно или явно указывать откуда берется та или иная сушность. Например std::cout заместо cout. Или открыть всю зону или только конкретные имена.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
IgnisFatuus
Постоялец

ru
Offline Offline

« Ответ #2 : 05-04-2012 18:58 » 

Изменил - 0 эмоций...

Добавлено через 6 минут и 54 секунды:
Вроде все как в книге...
« Последнее редактирование: 05-04-2012 19:05 от IgnisFatuus » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 05-04-2012 19:08 » 

Первый вариант
Код: (C++)
//
// Преобразование гр.Ц в градусы Фаренгейта
// Fahrenheit = NCelsius * (212 - 32) / 100 + 32
//

#include <iostream>
int main (int nNumberOfArgs,  char * pszArgs [])
{
        // Введите темп в Цельсиях
        int nNCelsius;
        std::cout << "Введите температуру по цельсию: ";
        std::cin >> nNCelsius;

        // для формулы
        // вычислим мноджитель
        int nNFactor;
        nNFactor = 212-32;
       
        //используеми преобразуем

        int nFahrenheit;
        nFahrenheit = nNFactor * nNCelsius/100 + 32;
       
        //результат
        std::cout << "Т. Ф.: ";
        std::cout << nFahrenheit;

        return 0;
}
Второй вариант
Код: (C++)
//
// Преобразование гр.Ц в градусы Фаренгейта
// Fahrenheit = NCelsius * (212 - 32) / 100 + 32
//

#include <iostream>
using namespace std;
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;
}
Третий вариант
Код: (C++)
//
// Преобразование гр.Ц в градусы Фаренгейта
// Fahrenheit = NCelsius * (212 - 32) / 100 + 32
//

#include <iostream>
using std::cout;
using std::cin;

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;
}
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 05-04-2012 19:10 » 

Вроде все как в книге...

Книга имеет более ранию редакцию Улыбаюсь В последних стандартах ужесточили этот вопрос.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 05-04-2012 19:51 » 

Книга имеет более ранию редакцию Улыбаюсь В последних стандартах ужесточили этот вопрос.

Помнится и заголовки сишной стандартной библиотеки без суффикса в C++ идут.

Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
IgnisFatuus
Постоялец

ru
Offline Offline

« Ответ #6 : 06-04-2012 09:20 » 

Я так понимаю, что это -
int main (int nNumberOfArgs,  char * pszArgs [])

это основная функция, которая задана в программе?

То есть int main (присвоить main(основное))  - (присвоить  nNumberOfArgs (количество аргументов или значение аргумента),  char * (значение nNFactor = 212-32, которое явл. целым числом)  умножить на pszArgs..?.

Что такое psz я хз... Прям в рифму...  Единственное что приходит в ассоциации - size... Размер...

Записан
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #7 : 06-04-2012 09:37 » 

Это просто имена параметров, вместо них можно использовать канонические argc и argv. А имя pszArgs - это изобретение одного венгерского товарища из Microsoft (http://ru.wikipedia.org/wiki/Венгерская_нотация), в имени параметра закодирован тип - Pointer String Zero-terminated - указатель на массив строк, заканчивающихся 0-вым символом (так называемых C-строк).
Записан
IgnisFatuus
Постоялец

ru
Offline Offline

« Ответ #8 : 06-04-2012 09:55 » new

Самое интересное, что задав вопрос я поскреб по сусекам интернета и в принципе нашел объяснение... Думаю все придет с опытом...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines