Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 15:24   #11
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

И еще пожалуйста укажите мне на ошибки в коде следующей программы, которая по (моей логике)) должна была считать данные из файла в массив, далее используя данные массива найти периметры треугольников и уже после этого найти максимальный периметр и вывести его на экран. Преподаватель мне эту программу забраковал аргументируя тем, что в ней использованы функции не из C/C++. Вот собственно код:
Код:
#include<stdio.h>
#include<conio.h>
  void main()
    {
       int*mass=new int[10][3];
       int P[10];
       int PP;
          FILE*file_1=fopen("data.dat","r");
          while (feof(file_1))
              for (int i=0;i<10;i++)
                for(int j=0;j<3;j++)
                     {
                        fseek(file_1,j,seek_set);
                        fread(&mass[i][j],sizeof(int),1,file_1);
                        for (int g=0;g<10;g++)
                           {
                              P[g]=mass[i][0]+mass[i][1]+mass[i][2];
                           }
                        PP=P[0];
                        if (P[g]>PP)
                        PP=P[g];
                      }
                cout<<"Pmax:"<<PP<<" ";
             {
                getch();
             }   
      return 0; 
    }
Злостный анимешнег =^.^=

Последний раз редактировалось Демик; 31.01.2011 в 15:38.
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 15:58   #12
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

1)Ты забыл подключить <iostream>
2) надо int main() по стандарту
3)
Код:
int*mass=new int[10][3];
это будет непонятно что, надо

Код:
int **mass = new int*[10];
       for(int i=0;i<10;i++) mass[i] = new int [3];
4) C/C++ чувствителен к регистру
Код:
fseek(file_1,j,seek_set);
надо
Код:
fseek(file_1,j,SEEK_SET);
5)
Цитата:
Преподаватель мне эту программу забраковал аргументируя тем, что в ней использованы функции не из C/C++.
Вот это мне не понятно. Если бы он сказал, что использованы функции не из C++ я бы понял. Тогда бы вместо FILE надоббыло бы fstream использовать и
Код:
getch();
заменить на
Код:
std::cin.get();
P.S. работоспособность не проверял

Последний раз редактировалось optimator; 31.01.2011 в 16:24.
optimator вне форума Ответить с цитированием
Старый 31.01.2011, 16:08   #13
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Код:
int*mass=new int[10][3];
это будет непонятно что, надо:
Код:
int **mass = new int*[10];
       for(int i=0;i<10;i++) mass[i] = new int [3];
Так весь смысл вот этого:
Код:
int*mass=new int[10][3];
В том что бы создать матрицу 10х3 в которой содержится 10 треугольников с длинами их сторон для нахождения периметра.
Код:
P[g]=mass[i][0]+mass[i][1]+mass[i][2];
Или я мог реализовать это как то иначе?
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 16:20   #14
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

Код:
int*mass=new int[10][3];
так можно сделать тольо одномерный массив, например
Код:
int*mass=new int[10];
было бы правильно.
Можно было просто статический массив объявитб
Код:
 int mass[10][3]

По поводу использования на Borland 3.1 -честно скажу -не знаю. Наверное можно,...хотя это древние компиллятор.
Код:
//======Чтение (файл должен существовать) =================		
HANDLE hFR = CreateFile("L:\\test.txt",GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
 FILE_ATTRIBUTE_NORMAL,NULL);
/*
Возвращает дескриптор, который может быть использован для доступа к объекту
FILE_SHARE_READ  - разрешает последующие операции открытия объекта, требующие доступа для чтения.
NULL заданный по умолчанию дескриптор безопасности

OPEN_EXISTING открытие существующего файла
FILE_ATTRIBUTE_NORMAL аттрибуты файла 

*/	
DWORD size = GetFileSize(hFR,NULL);/* получение размера файла, связанного с дескриптором hFR */
		
char *buf = new char [size];
		
ReadFile(hFR,buf,size,&ByteRead,NULL);
/* считывание из файла, связанного с дескриптором hFr блока данных размером size в буфер buf
ByteRead -количество реально прочитанных байт


//=========== Запись в файл===========
	
HANDLE hFW = CreateFile("L:\\test2.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
/* 
CREATE_ALWAYS - создаем новый файл. Если файл уже существует, то перезаписываем его                                    
*/	
WriteFile(hFW,buf,size,&ByteWrite,NULL);
   
   
CloseHandle(hFR);	
/* Закрываем дескриптор файла */
   
CloseHandle(hFW);
Полное описание этих функций читай в MSDN
http://msdn.microsoft.com/en-us/library/aa363858
http://msdn.microsoft.com/en-us/libr...55(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa365467.aspx
http://msdn.microsoft.com/en-us/libr...47(VS.85).aspx
И еще на русском есть
http://vsokovikov.narod.ru/New_MSDN_...createfile.htm
http://vsokovikov.narod.ru/New_MSDN_...n_readfile.htm
http://vsokovikov.narod.ru/New_MSDN_...etfilesize.htm
http://vsokovikov.narod.ru/New_MSDN_..._writefile.htm

Последний раз редактировалось optimator; 31.01.2011 в 16:23.
optimator вне форума Ответить с цитированием
Старый 31.01.2011, 16:26   #15
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Спасибо, уболтать бы модераторов закрепить тему) Или не надо?) Как думаешь?
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 16:34   #16
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
Сообщение

Цитата:
Спасибо, уболтать бы модераторов закрепить тему) Или не надо?) Как думаешь?
Хм, ну я даже не знаю. Если это будет полезно начинающим, то можешь попробовать.
optimator вне форума Ответить с цитированием
Старый 31.01.2011, 16:44   #17
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Думаю будет полезно, мне помогло)Да и вопрошающих будет куда посылать)
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами в Borland C++ Pavel1992 Помощь студентам 3 14.10.2010 20:12
Borland C++ 3.1 Работа с файлами. ardor Помощь студентам 0 29.05.2010 18:49
borland C++ 3.1 работа с файлами Infa-Red Общие вопросы C/C++ 2 10.05.2010 22:37
Строки и работа с файлами на Borland C++ 3.1 CePryH Помощь студентам 6 16.06.2009 16:37
русский язык в Borland C++ Noor Общие вопросы C/C++ 18 02.01.2009 16:32