Skocz do zawartości
turzol

Zadania z C++ - może ktoś potrafi to zrobić....

Rekomendowane odpowiedzi

Mam za niedługo zalkę z C++ i ostro wkuwam :lol: Mam problem z dwoma zadaniami:

 

Zad1. W zestawie znajduje się plik z1.bmp

Wczytaj z pliku z1.bmp nagłówek pliku BMP zdefiniowany jak następuje:

pozycja rozmiar znaczenie

0 1 znak 'B'

1 1 znak 'M'

2 4 rozmiar

6 2 res1

8 2 res2

10 4 offset piksela

14 4 rozmiar nagłówka

18 4 szerokość w pikselach

22 4 wysokość w pikselach

26 2 ilość planów

28 2 liczba bitów na piksel

30 4 kompresja

34 4 rozmiar skompresowanego obrazu

38 4 liczba pikseli na metr w osi x

42 4 liczba pikseli na metr w osi y

46 4 liczba użytych kolorów

50 4 liczba istotnych kolorów

 

Wypisz wartości zdefiniowanych pól nagłówka tego pliku na konsolę.

 

Oto ten bmp:

http://members.lycos.co.uk/turzol/public/z1.bmp

 

Zad2. W zestawie znajduje się plik tek.hlp

Jego zawartość zdefiniowana jest następująco:

4 bajty - rozmiar_pliku

2 bajty - ilość zapisów

treść zapisu pierwszego (tekstowo), bajt zerowy;

...

treść zapisu n-tego (tekstowo), bajt zerowy;

Wczytaj do pamięci całą zawartość pliku tek.hlp

Wypisz na konsolę komunikat:

"Wczytano N zapisów. Podaj który mam wypisać: "

Za 'N' należy podstawić rzeczywistą ilość zapisów w pliku, a następnie

wczytać z konsoli numer szukanego zapisu. Nie trzeba programować kontroli

poprawności podanego numeru.

Wypisać zawartość zapisu o podanym numerze na konsolę.

Program może być jednoprzebiegowy (bez pętli typu: "Czy kończysz [t/n] ?").

 

link do pliku: http://members.lycos.co.uk/turzol/public/tek.hlp

 

Za bardzo nie wiem jak to zrobić....próbowaliśmy z kumplem się do tego zabrać, ale bezskutecznie.

 

Jakby ktoś mógł podsunąć jakąś wskazówkę będę zobowiązany :wink:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

hmmm tez kampania wrzesniowa ? :D

1) czytasz bajt po bajcie. jak zmienna ma kilka bajtow to je odpowiednio mnozysz. oczywiscie to jeden ze sposobow.

2) dynamiczna struktura bylaby wskazana + wyszukiwarka ;)

 

watpie zeby ktos Ci to napisal :?

heh, a ja akurat pisze na zalke gre z przejawem inteligencji kompa :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zad1. W zestawie znajduje się plik z1.bmp  

Wczytaj z pliku z1.bmp nagłówek pliku BMP zdefiniowany jak następuje:  

[...]

ok, ja wiem ze to bardzo nieetyczne i nieedukacyjne, ale wkleje tutaj kawalki kodu ktory napisalem jeszcze na poczatku liceum - zczytywanie naglowka bmp - swoja droga - to jest tak banalnie proste, ze ciezko widze twoja przyszlosc w programowaniu :(

 

struct tagbitmapfileheader {  char bftype[2];  long bfsize;  char bfreserved1[2];  char bfreserved2[2];  long bfoffbits;    } bitmapfileheader;struct tagbitmapinfoheader {  long bisize;  long biwidth;  long biheight;  char biplanes[2];  char bibitcount[2];  long bicompression;  long bisizeimage;  long bixpelspermeter;    long biypelspermeter;    long biclrused;  long biclrimportant; } bitmapinfoheader;struct tagRGBQUAD { char rgbBlue; char rgbGreen; char rgbRed; char rgbReserved; } RGBQUAD[255];struct tagData { char data[64000]; } Data;void odczyt_bmp(char file_name[]) { long i,j; plik=fopen(file_name,"rb"); fread(&bitmapfileheader,14,1,plik); fread(&bitmapinfoheader,40,1,plik); fread(&RGBQUAD,1024,1,plik); i=(bitmapfileheader.bfoffbits); j=(bitmapinfoheader.bisizeimage); fseek(plik,i,0); temp=malloc(j); for(i=0;i<j;i++){*(temp+i)=(fgetc(plik));} fclose(plik);}

jak to umiejetnie wykorzystasz to sprawe masz zalatwiona z pierwszym zadaniem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...