turzol Opublikowano 16 Września 2003 Zgłoś Opublikowano 16 Września 2003 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: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
phranzee Opublikowano 16 Września 2003 Zgłoś Opublikowano 16 Września 2003 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 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pshem Opublikowano 16 Września 2003 Zgłoś Opublikowano 16 Września 2003 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pshem Opublikowano 16 Września 2003 Zgłoś Opublikowano 16 Września 2003 heh, a ja akurat pisze na zalke gre z przejawem inteligencji kompa :P a z kim masz programowanie ?? bo jak z mikanikiem to zycze powodzenia - przyda ci sie :wink: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...