Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    react



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, подскажите плиз как надо обьявлять и инициализировать двухмерный
     масив int'ов, чтоб потом его передать в функцию указателем ???

    Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 01:23 16-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    // вообще легко...  и все выводится
    void rat(int mas[][8]);
     
    int main(int argc, char* argv[])
    {
       int Mas[4][8] = {{1,1,1,1,1,1,1,1},{2,2,2,2,2,2,2,2},{3,3,3,3,3,3,3,3},{4,4,4,4,4,4,4,4}};
     
       rat(Mas);
     
       return 0;
    }
     
    //  
    void rat(int mas[][8])
    {
       for (int i=0;i<4;i++) {
          for (int j=0;j<8;j++) {
             printf("%d", mas[i][j]);
          }
      }
    }

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 11:41 19-05-2004
    react



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JonnySilver
     
     Thanks !!!

    Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 01:10 24-05-2004
    Dark_Wizard

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ у мена проблема токая, установил себе Borland C++ 5, но вот проблема нехочет брать егоже стандартные библиотеки, ибо пытюсь например написать

    Цитата:
     
    #include <iostream>
    int mai()
    {
     int integer1;
     std::cout << "Enter first integer\n";
     std::cin >> integer1;
     int integer2, sum;
     std::cout << "Enter second integer\n";
     std::cin >> integer2;
     sum=integer1 + integer2;
     std::cout << "Sum is" << sum << std::endl;
     return 0;
    }
     

    и он мне выдаёт такие ошибки

    Цитата:
     
    Qualifier 'std' is not a class or namespace name
     

    Хотя по идеие должно было работать.
    Что делать?

    Всего записей: 84 | Зарегистр. 05-03-2004 | Отправлено: 02:44 24-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dark_Wizard

    Цитата:
    #include <iostream>

    #include <iostream.h>

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 04:46 24-05-2004
    Dark_Wizard

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JonnySilver

    Цитата:
    #include <iostream.h>

    Таже х..ь вылазит  
    Хотя я ориентировался по книжке  Х.М. Дейтела
     
    Добавлено
    Может проблема в самой сишке?

    Всего записей: 84 | Зарегистр. 05-03-2004 | Отправлено: 05:31 24-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Во, блин, понедельник же! Я и сам запарился - Убери везде std:: !!

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 06:35 24-05-2004
    Dark_Wizard

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JonnySilver
    Пасибо, работает!!!
    А почему без std:: ?

    Всего записей: 84 | Зарегистр. 05-03-2004 | Отправлено: 06:59 24-05-2004 | Исправлено: Dark_Wizard, 07:04 24-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как бы попроще объяснить...
    В записи выражения "std::cout << ..." подразумевается, что std - это класс.
    Нет такого класса - std. А вот "cout" - это класс вывода на консоль. Он определен и поэтому все работает.

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 08:18 24-05-2004
    Crazy_Shrike



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    void rat(int mas[][8]);  
     
    int main(int argc, char* argv[])  
    {  
       int Mas[4][8] = {{1,1,1,1,1,1,1,1},{2,2,2,2,2,2,2,2},{3,3,3,3,3,3,3,3},{4,4,4,4,4,4,4,4}};  
     
       rat(Mas);  
     
       return 0;  
    }  
     
    //  
    void rat(int mas[][8])  
    {  
       for (int i=0;i<4;i++) {  
          for (int j=0;j<8;j++) {  
             printf("%d", mas[i][j]);  
          }  
      }  
    }

     
    Люди, представляете, а у меня не работает!!! Хотя точно то же самое. Передается только часть массива, скажем, из десяти строк четыре передаются правильно, а остальные - случайные числа, как будто их просто не инициализировали и они показывают содержимое ячеек выделенной памяти. Весь смех в чем - те четые строки, которые передаются правильно не обязательно первые и даже не обязательно идут одна за другой!!! Я в такой панике, что готов разбить монитор. Еще одна фишка в том, что, если передавать этот массив в пределах файла .cpp - все нормально, но при передаче в файл с реализацией методов класса происходит такая фигня.  
    Может у кого-то есть мысли?  
    ЗЫ. Анинсталить компилер, выкинуть компьютер, погасить монитор, выдернуть сетевой кабель и т.д. - не предлагать.
     
     
    Добавлено
    Кстати, "void rat()" - это классический прикол программистов С или солидарность со мной?

    Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 11:54 26-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Crazy_Shrike

    Цитата:
    Люди, представляете, а у меня не работает!!! Хотя точно то же самое.

    Чтобы было ТОЧНО ТОЖЕ САМОЕ, нужно код один к одному скопировать, а у тебя, как я понял и размерности другие и еще может где-то натычка... Ищи ошибочку.

    Цитата:
    Кстати, "void rat()" - это классический прикол программистов С или солидарность со мной?

    просто скопировал что было, и подправил, вот.

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 12:18 26-05-2004
    Swappp

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dark_Wizard

    Цитата:
    А почему без std:: ?

    Вообще std должен быть, или в начале должна быть строка "using namespace std;" и "#include <iostream>" без .h, но похоже Borland C++ 5 не соответствует стандартам кажется 98 года. Попробуй чтонибудь поновее.
    Crazy_Shrike

    Цитата:
    void rat(int mas[][8]);  
     
    int main(int argc, char* argv[])  
    {  
       int Mas[4][8] = {{1,1,1,1,1,1,1,1},{2,2,2,2,2,2,2,2},{3,3,3,3,3,3,3,3},{4,4,4,4,4,4,4,4}};  
     
       rat(Mas);  
     
       return 0;  
    }  
     
    //  
    void rat(int mas[][8])  
    {  
       for (int i=0;i<4;i++) {  
          for (int j=0;j<8;j++) {  
             printf("%d", mas[i][j]);  
          }  
      }  
    }

    Оффтоп конечно, но не проще ли поменять rat и main местами, и убрать объявление rat вначале?

    Всего записей: 1716 | Зарегистр. 02-11-2001 | Отправлено: 22:50 26-05-2004
    Crazy_Shrike



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    но не проще ли поменять rat и main местами, и убрать объявление rat вначале?

     
    Гы... и че?  
     
    А про void rat() был прикольчик на курсах.  Препод пишет пример,.. Есть у нас функция void rat() ...  почему rat? Ну, она ничего не возвращает - значит крыса...  
     
    Я думал, что это известный всем прикол, но оказалось, что придумал препод...

    Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 10:24 27-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Swappp

    Цитата:
    ... но не проще ли поменять rat и main местами, и убрать объявление rat вначале?

    Это что-то сильно упростит? На скорость выполнения повлияет?
    А если серьезно, то мне нравится видеть объявления функций в начале, особенно когда много кода нагородишь. Привычка, блин.  

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 12:51 27-05-2004
    Crazy_Shrike



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    мне нравится видеть объявления функций в начале

     
    А можно как-то по-другому???
    Ну, конечно, если сразу их там реализовывать, как в паскале - то вопросов нет, а  иначе без объявления низя...
     
     
    Добавлено
    Насчет неправильной передачи массива ни у кого свежих мыслей нет?

    Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 16:15 27-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Crazy_Shrike

    Цитата:
    А можно как-то по-другому???

    Можно и по другому. а) Объявлять нужную функцию там , откуда она будет вызвана (из другой функции), б) расположить функции в порядке вызова - ну это почти фантастика.
     
     
    Цитата:
    Передается только часть массива, скажем, из десяти строк четыре передаются правильно, а остальные - случайные числа, как будто их просто не инициализировали и они показывают содержимое ячеек выделенной памяти.

    Ты код нарисуй, чтобы посмотреть можно было...

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 18:14 27-05-2004
    Swappp

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Crazy_Shrike
    JonnySilver

    Цитата:
    Привычка, блин.

    ага

    Цитата:
    Насчет неправильной передачи массива ни у кого свежих мыслей нет?

    Может код покажешь? А то приведенный выше нормально работает...

    Всего записей: 1716 | Зарегистр. 02-11-2001 | Отправлено: 20:45 27-05-2004
    Crazy_Shrike



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    //В главном .cpp - файле:
     
      //объявление массива:
      int mas[8][4];
     
      //......инициализация......
     
    //Передача в файл реализации методов:
     
      Essence[i].Rat(mas);
     
     
    //Прототип в заголовочном файле:
     
      void Rat(int mas[][4]);
     
     
    //Реализация в файле реализации методов класса:
     
      void CEssence::Rat(int mas[][4])
      {
         
      //Вывод массива... В файл, но это не принципиально... Считаем, просто вывод...
     
         ofstream outfile("file.txt",ios::out);
         for(int i=0;i<8;i++)
         {
              for(int j=0;j<4;j++)
              {
                   outfile<<mas[i][j]<<" ";
              }
              outfile<<endl;
         }  
      }
     
     
    И, еще раз повторюсь... главное - что, если вывод сделать в функции, принадлежащей главному файлу - все зашибись!
     
    Добавлено

    Цитата:
    расположить функции в порядке вызова - ну это почти фантастика.  

     
    Гы. Если это не программа суммирования двух чисел с последующим выводом в консоль, то такое действительно невозможно...

    Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 10:46 28-05-2004
    JonnySilver



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот так все правильно работает (пример на VC++ 6):
     
    //---------------------------------------------------------------------------
    // mas.cpp : Defines the entry point for the console application.
    //---------------------------------------------------------------------------
    #include "stdafx.h"
     
    int Mas[4][8] = {{1,1,1,1,1,1,1,1},{2,2,2,2,2,2,2,2},{3,3,3,3,3,3,3,3},{4,4,4,4,4,4,4,4}};    
     
    int main(int argc, char* argv[])    
    {    
       
       CTest test;
       test.PrintMas(Mas);
       
       return 0;    
    }    
       
    //---------------------------------------------------------------------------
    // MyClass.cpp
    //---------------------------------------------------------------------------
    #include "stdafx.h"
     
    void CTest::PrintMas(int Mas[][8])
    {
      for (int i=0;i<4;i++) {    
          for (int j=0;j<8;j++) {    
             printf("%d", Mas[i][j]);    
          }    
      }  
    };
     
    //---------------------------------------------------------------------------
    // stdafx.cpp : source file that includes just the standard includes
    //mas.pch will be the pre-compiled header
    //stdafx.obj will contain the pre-compiled type information
    //---------------------------------------------------------------------------
     
    #include "stdafx.h"
     
    // TODO: reference any additional headers you need in STDAFX.H
    // and not in this file
     
    //---------------------------------------------------------------------------
    // MyClass.h
    //---------------------------------------------------------------------------
    extern int Mas[4][8];
     
    class CTest {
    public:
    void PrintMas(int Mas[][8]);
    };
     
    //---------------------------------------------------------------------------
    // stdafx.h : include file for standard system include files,
    //  or project specific include files that are used frequently, but
    //      are changed infrequently
    //---------------------------------------------------------------------------
     
    #if !defined(AFX_STDAFX_H__D8B8C5DD_38B5_45A3_8609_C0F64523BFA3__INCLUDED_)
    #define AFX_STDAFX_H__D8B8C5DD_38B5_45A3_8609_C0F64523BFA3__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    #define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
     
    #include <stdio.h>
    // TODO: reference additional headers your program requires here
    #include "MyClass.h"
     
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
     
    #endif // !defined(AFX_STDAFX_H__D8B8C5DD_38B5_45A3_8609_C0F64523BFA3__INCLUDED_)

    Всего записей: 151 | Зарегистр. 03-09-2003 | Отправлено: 23:31 28-05-2004 | Исправлено: JonnySilver, 23:33 28-05-2004
    Swappp

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Crazy_Shrike
    Что то я не очень понимаю... куски не полные...
    Зачем
    Цитата:
    void Rat(int mas[][4]);

    когда Rat это метод класса? или CEssence это namespace?

    Цитата:
    Если это не программа суммирования двух чисел с последующим выводом в консоль, то такое действительно невозможно

    Хм, я вроде писал, что то сложнее калькулятора, или я ошибался на самом делее там функций было не больше трех, не считая main, все остальное в классах...
    JonnySilver

    Цитата:
    #include "stdafx.h"

    обьясните глупому, зачем нужен этот stdafx.h? Первый мой компилятор gcc по этому не очень понимаю, там такого нету И вообще пытаюсь писать код, котрый можно будет скомпилировать основными современными компиляторами (C++ компилятор от VS.NET 2003 и GCC) и под разные платформы (пока это мне удается , правда для GUI приходится использовать Qt).

    Цитата:
    В записи выражения "std::cout << ..." подразумевается, что std - это класс.
    Нет такого класса - std.

    поправочка, std это не класс, это пространство имен (namespace), в ANSI C++ все стандартные классы (из iostream, fstream и т.д) должны быть помещены в это пространство, а использовать их можно либо прописав в начале "using namespace std;" либо приписывая к каждому классу "std::". Если компилятор отказывается компилировать такой код, это означает лишь одно, он устарел.

    Всего записей: 1716 | Зарегистр. 02-11-2001 | Отправлено: 00:09 29-05-2004 | Исправлено: Swappp, 00:16 29-05-2004
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

    Имя:
    Пароль:
    Сообщение

    Для вставки имени, кликните на нем.

    Опции сообщенияДобавить свою подпись
    Подписаться на получение ответов по e-mail
    Добавить тему в личные закладки
    Разрешить смайлики?
    Запретить коды


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2018

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru