Teraz jest 30 lis 2024, 17:45

Strefa czasowa: UTC + 2


Regulamin działu


Kliknij, aby przejrzeć regulamin



Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 21 cze 2007, 10:44 
Offline
Avatar użytkownika

Dołączył(a): 31 paź 2005, 22:48
Posty: 203
Mógłby ktoś znajacy sie na tym potwierdzic ze 1 odpowiedz (licznik+ 1) jest prawidlowa :wink: wczoraj mialem egzamin i zyje w niepewnosci przez to zadanie 8)

Obrazek

_________________
Obrazek


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 21 cze 2007, 11:05 
Offline
Avatar użytkownika

Dołączył(a): 7 lip 2005, 11:21
Posty: 2210
Lokalizacja: Warszawa
:shock: turbo pascal!
gdybys sie mnie spytal w 6 klasie podstawowki bym ci powiedzial, teraz juz nie pamiętam :lol: :oops:

_________________
ObrazekObrazek
Rosyjscy żołdacy, won z Gruzji!


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 21 cze 2007, 11:26 
Offline
Avatar użytkownika

Dołączył(a): 2 mar 2005, 14:52
Posty: 109
Lokalizacja: Wrocław
Czesc

Na moje oko to odpowiedz nr 1 jest poprawna.
licznik := licznik + 1 spowoduje inkrementacje o 1 zmiennej licznik w każdym obiegu pętli, a o to chyba chodzi ;-)

A swoja droga to ten program może dawać czasami nieprawidłowe wyniki bo ma jedynie zadeklarowana zmienna licznik i nie jest ona zerowana przed użyciem.
W zależności od kompilatora może działać dobrze lub nie :-)

Pozdrawiam

_________________
Rząd wciąż chce naszego dobra... a nam zostało go już tak niewiele..."


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 21 cze 2007, 11:57 
Offline
Avatar użytkownika

Dołączył(a): 31 paź 2005, 22:48
Posty: 203
ha a to jest egzamin z podstaw informatyki na 2 semestrze :) z tym ze nie bylo tego na wykladach :] :mrgreen:

dzieki za pomoc :d humor lepszy ze egzam do przodu : 8)

_________________
Obrazek


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 21 cze 2007, 13:02 
Offline
Avatar użytkownika

Dołączył(a): 5 cze 2005, 13:14
Posty: 1464
Lokalizacja: Zabrze
Swoją droga podlocze sie do tematu. Od kilku dni na własna reke ucze sie C. Idzie jako tako, ale jednej rzeczy za chloere pominac nie umie :/

Pisze program w którym jest menu z 5 opcjami do wyboru (pierwsze 4 powoduja ze cos sie bedzie działo, 5ta to wyjscie). Byłoby wszystko ok, ale chce to wszystko zapętlic. Zrobiłem to przy uzyciu while(), ale podczas gdy pobierany jest wybor od 1-5 to program pobiera oprocz tego znaku (od 1-5) znak nowej linii \n. Powoduje to ze gdy program zapetla sie to autmatycznie pobiera on ten znak nowej linii ;/ przez co tak jakby nic nie jest pobrane.
Z tego co wiem, to mozna to pominac uzywajac odpowiednio i w odpowiednim miejscu while() z continue; albo przy pomocy funkcji , ktora pobiera pierwszy znak (pomijajac ten niedrukowany). Dla programistow to nie jest chyba problem, chyba ze nie rozumieja tego co napisalem :P
Nie umiem tego inaczej wyjasnic :D
Jak bedzie trzeba to wkleje cały kod ;]

_________________
"Najbardziej odczujesz brak jakiejś osoby,
kiedy będziesz siedział obok niej i będziesz
wiedział, że ona nigdy nie będzie twoja."

:(


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 21 cze 2007, 13:20 
Offline
Avatar użytkownika

Dołączył(a): 7 lip 2005, 11:21
Posty: 2210
Lokalizacja: Warszawa
wklej tu twoj program w [code]

_________________
ObrazekObrazek
Rosyjscy żołdacy, won z Gruzji!


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 21 cze 2007, 13:24 
Offline
Avatar użytkownika

Dołączył(a): 11 sty 2006, 10:28
Posty: 1190
Lokalizacja: Warszawa
jakiej instrukcji uzywasz do pobierania znaku (raczej w twoim wypadku to instrukcja pobiera ciag) ?

mozesz wyprobowac getchar()
albo bardziej zaawansowane i bardziej pr0 , sprawdzac co dostajesz na wejscie, przetwarzanie tablicy znakowej itp...

_________________
Don't fear the reaper :]


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 21 cze 2007, 22:46 
Offline
Avatar użytkownika

Dołączył(a): 5 cze 2005, 13:14
Posty: 1464
Lokalizacja: Zabrze
Poskładałem to w jeden plik :

Kod:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define PREDKOSC1 30
#define PREDKOSC2 40
#define PREDKOSC3 50
#define PREDKOSC4 60
#define PREDKOSC5 70
#define GRANICA 65

char pobierz_predkosc(void);
char rownosc(void);
char gwiazdki(void);
int godziny();

/* FUNKCJA MAIN() */
int main(void)
{
    char wybor;
    int godz;
   
       
    rownosc();
    printf("PROGRAM OBLICZAJACY POKONANA TRASE\n");
    rownosc();
   
    while( (wybor=pobierz_predkosc()) != 'q')
    {       

            switch(wybor)
                         {
                         case '1' : printf("Wybrales predkosc %d km/h\n",PREDKOSC1);
                                    printf("Przy predkosci %dkm/h pokonano w czasie %dgodzin %dkilometrow\n",PREDKOSC1,godz=godziny(),PREDKOSC1*godz);
                                    gwiazdki();
                                    break;                                   
                         case '2' : printf("Wybrales predkosc %d km/h\n",PREDKOSC2);
                                    printf("Przy predkosci %dkm/h pokonano w czasie %dgodzin %dkilometrow\n",PREDKOSC2,godz=godziny(),PREDKOSC2*godz);                               
                                    gwiazdki();
                                    break;
                         case '3' : printf("Wybrales predkosc %d km/h\n",PREDKOSC3);
                                    printf("Przy predkosci %dkm/h pokonano w czasie %dgodzin %dkilometrow\n",PREDKOSC3,godz=godziny(),PREDKOSC3*godz);                               
                                    gwiazdki();
                                    break;
                         case '4' : printf("Wybrales predkosc %d km/h\n",PREDKOSC4);
                                    printf("Przy predkosci %dkm/h pokonano w czasie %dgodzin %dkilometrow\n",PREDKOSC4,godz=godziny(),PREDKOSC4*godz);                               
                                    gwiazdki();
                                    break;
                         case '5' : printf("Wybrales predkosc %d km/h\n",PREDKOSC5);
                                    printf("Przy predkosci %dkm/h pokonano w czasie %dgodzin %dkilometrow\n",PREDKOSC5,godz=godziny(),PREDKOSC5*godz);                       
                                    gwiazdki();
                                    break;                                                                                                                   
                         default  : printf("Blad! Podaj liczby calkowite z przedzialu <1,4>\n\n");
                                    gwiazdki();                                                         
                                    break;
                         } 
    }                     
system("pause");
return 0;
}


/* FUNKCJA POBIERZ_PREDKOSC() */
char pobierz_predkosc(void)
{
    char wybor;
   
    printf("Wybierz opcje, dla ktorej bedzie liczona pokonana trasa\n\n");
    printf("1) %dkm/h\n",PREDKOSC1);   
    printf("2) %dkm/h\n",PREDKOSC2);   
    printf("3) %dkm/h\n",PREDKOSC3);   
    printf("4) %dkm/h\n",PREDKOSC4);   
    printf("5) %dkm/h\n",PREDKOSC5); 
    printf("q) Wyjscie\n\n",PREDKOSC5);
    printf("OPCJA: _\b");
    wybor=getchar();
    printf("\n");

    return wybor;
}   
                 
/* FUNKCJA ROWNOSC() */               
char rownosc(void)                 
{
     int x;
     
     for(x=1;x<=GRANICA;x+=1)
         printf("=");
     
     printf("\n");                 
}                                                                                                               


/* FUNKCJA GODZINY() */ 
int godziny()
{
    int godz;
       
    printf("Podaj czas jakim poruszano sie ta predkoscia: __h\b\b\b");
    scanf("%d",&godz);

    return godz;
}   


/* FUNKCJA GWIAZDKI() */               
char gwiazdki(void)                 
{
     int x;
     
     for(x=1;x<=GRANICA;x+=1)
         printf("*");
     
     printf("\n");                 
}



Wiem, ze pare rzeczy jest niepotrzebne bo np. zamiast bawic sie bawic funkcja jak np. gwiazdki() moglem to zrobic zwyczajnie przy pomocy #define, ale poki co jestem zielony w C dlatego staram sie uzywac nowo poznanych rzeczy nawet jesli mozna łatwiej je zastapic.

Byłbym wdzieczny gdybyscie wyłapali jakies drobniejsze bledy :]

_________________
"Najbardziej odczujesz brak jakiejś osoby,
kiedy będziesz siedział obok niej i będziesz
wiedział, że ona nigdy nie będzie twoja."

:(


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 22 cze 2007, 00:51 
Offline
Avatar użytkownika

Dołączył(a): 7 lip 2005, 11:21
Posty: 2210
Lokalizacja: Warszawa
teraz działa pięknie.
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define PREDKOSC1 30
#define PREDKOSC2 40
#define PREDKOSC3 50
#define PREDKOSC4 60
#define PREDKOSC5 70
#define GRANICA 65

char pobierz_predkosc();
void rownosc();
void gwiazdki();
int godziny();

/* FUNKCJA MAIN() */
int main(void)
{
    char wybor;
    int godz;
   
       
    rownosc();
    printf("PROGRAM OBLICZAJACY POKONANA TRASE\n");
    rownosc();
   
    do
    { 
            wybor=pobierz_predkosc();
            switch(wybor)
                         {
                         case '1' : printf("Wybrales predkosc %d km/h\n\n",PREDKOSC1);
                                    printf("Przy predkosci %d km/h pokonano w czasie %d godzin %d kilometrow\n\n\n",PREDKOSC1,godz=godziny(),PREDKOSC1*godz);
                                    gwiazdki();
                                    break; 
                                                                     
                         case '2' : printf("Wybrales predkosc %d km/h\n\n",PREDKOSC2);
                                    printf("Przy predkosci %d km/h pokonano w czasie %d godzin %d kilometrow\n\n\n",PREDKOSC2,godz=godziny(),PREDKOSC2*godz);                               
                                    gwiazdki();
                                    break;
                                   
                         case '3' : printf("Wybrales predkosc %d km/h\n\n",PREDKOSC3);
                                    printf("Przy predkosci %d km/h pokonano w czasie %d godzin %d kilometrow\n\n\n",PREDKOSC3,godz=godziny(),PREDKOSC3*godz);                               
                                    gwiazdki();
                                    break;
                                   
                         case '4' : printf("Wybrales predkosc %d km/h\n\n",PREDKOSC4);
                                    printf("Przy predkosci %d km/h pokonano w czasie %d godzin %d kilometrow\n\n\n",PREDKOSC4,godz=godziny(),PREDKOSC4*godz);                               
                                    gwiazdki();
                                    break;
                                   
                         case '5' : printf("Wybrales predkosc %d km/h\n\n",PREDKOSC5);
                                    printf("Przy predkosci %d km/h pokonano w czasie %d godzin %d kilometrow\n\n\n",PREDKOSC5,godz=godziny(),PREDKOSC5*godz);                       
                                    gwiazdki();
                                    break;
                                   
                         case 'q' : break;
                                                                                                                                           
                         default  : printf("Blad! Podaj liczby calkowite z przedzialu od 1 do 5.\n\n");
                                    gwiazdki();                                                         
                                    break;
                         } 
    }while( wybor != 'q');                       
// system("pause");
return 0;
}


/* FUNKCJA POBIERZ_PREDKOSC() */
char pobierz_predkosc()
{
    char x;
       
    printf("Wybierz opcje, dla ktorej bedzie liczona pokonana trasa:\n\n");
    printf("1) %d km/h\n",PREDKOSC1);   
    printf("2) %d km/h\n",PREDKOSC2);   
    printf("3) %d km/h\n",PREDKOSC3);   
    printf("4) %d km/h\n",PREDKOSC4);   
    printf("5) %d km/h\n",PREDKOSC5); 
    printf("q) Wyjscie\n\n",PREDKOSC5);
    printf("OPCJA: _\b");
    fflush(stdin);
    scanf("%c", &x);
    printf("\n");

   
    return x;
}   
                 
/* FUNKCJA ROWNOSC() */               
void rownosc()                 
{
     int x;
     
     for(x=1; x<=GRANICA; x++) printf("=");
     printf("\n");                 
}                                                                                                               


/* FUNKCJA GODZINY() */ 
int godziny()
{
    int godz;
       
    printf("Podaj czas jakim poruszano sie ta predkoscia: __h\b\b\b");
    scanf("%d",&godz);
    printf("\n");

    return godz;
}   


/* FUNKCJA GWIAZDKI() */               
void gwiazdki()                 
{
     int x;
     
     for(x=1;x<=GRANICA;x++) printf("*");
     printf("\n\n\n");                 
}


Troszkę w nim poprzestawiałem, ale kluczem jest funkcja fflush(stdin);. Czyści ona jednorazowo bufor. Więc jeśli umieścisz te komendę przed scanfem to nie będzie on czytał jakiś staroci z buforu.

na wytykanie "drobniejszych błędów" nie ma czasu bo już pierwsza, a jutro muszę rano wstać. :(

_________________
ObrazekObrazek
Rosyjscy żołdacy, won z Gruzji!


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 22 cze 2007, 16:40 
Offline
Avatar użytkownika

Dołączył(a): 5 cze 2005, 13:14
Posty: 1464
Lokalizacja: Zabrze
Dzieki Wujek :)

Nie miałem pojecia jak to rozwiazac, a wystarczyło pare literek dopisac :]
Wszystko działa teraz cacy :)

_________________
"Najbardziej odczujesz brak jakiejś osoby,
kiedy będziesz siedział obok niej i będziesz
wiedział, że ona nigdy nie będzie twoja."

:(


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 17 lis 2007, 21:32 
Offline
Avatar użytkownika

Dołączył(a): 5 cze 2005, 13:14
Posty: 1464
Lokalizacja: Zabrze
Odkopuje temat ;)

Pisze ostatnio program w pascalu majacy szyfrowac pliki. Uzytkowik podaje tekst (badz podaje sciezke do pliku) i nastepnie tekst jest szyfrowany. Problem w tym, że ja potrzebuje szyfrować pliki zawierajace nawet 10k znakow. Nie moge uzyc string'a bo on niestety moze pomiescic 255znakow. Czy jest jakis odpowiednik string'a o szerszym zakresie?

_________________
"Najbardziej odczujesz brak jakiejś osoby,
kiedy będziesz siedział obok niej i będziesz
wiedział, że ona nigdy nie będzie twoja."

:(


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 18 lis 2007, 14:22 
Offline
Avatar użytkownika

Dołączył(a): 31 gru 2004, 17:55
Posty: 118
Lokalizacja: Łódź
A nie można użyć tablicy? Najpierw zliczasz ilość znaków składających się na ten tekst, a potem tworzysz tablicę + 1 znak. Tak było by np. w C++. Co do Pascala to już nie pamiętam czy to by przeszło.


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 18 lis 2007, 15:27 
Offline
Avatar użytkownika

Dołączył(a): 5 cze 2005, 13:14
Posty: 1464
Lokalizacja: Zabrze
Z tymże zeby zliczyc jego dlugośc najpierw musze go wprowadzic, a po 255 znakach blokuje sie dopisywanie kolejnych znakow ;)

_________________
"Najbardziej odczujesz brak jakiejś osoby,
kiedy będziesz siedział obok niej i będziesz
wiedział, że ona nigdy nie będzie twoja."

:(


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 18 lis 2007, 18:41 
Offline
Moderator forum
Avatar użytkownika

Dołączył(a): 22 sie 2006, 11:40
Posty: 1026
Lokalizacja: no route to host...
robal napisał(a):
Z tymże zeby zliczyc jego dlugośc najpierw musze go wprowadzic, a po 255 znakach blokuje sie dopisywanie kolejnych znakow

Nie musisz :)
Musisz conajwyzej przejsc przez caly plik. Nie pamietam skladni pascala, ale rozwiazanie opiera sie na czytaniu po znaczku pliku i zwiekszaniu licznika znakow po drodze.
Nie mowiac juz o tym, ze mozna (?) zdaje sie w pascalu ustawic sobie tablice na np 500 znakow i wczytywac do niej a nie do stringa.

_________________
ObrazekObrazek
Carno's blog - my part of the web


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 18 lis 2007, 20:38 
Offline

Dołączył(a): 28 gru 2006, 15:08
Posty: 813
Lokalizacja: Łódź
Hmmm, a nie mógłbyś szyfrować w locie? Tzn odczytujesz kilka znaków, szyfrujesz, i dopisujesz na koniec pliku wynikowego, czyścisz bufor, odczytujesz kolejny ciąg i tak w pętli aż natrafisz na znak końca pliku.


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 2


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 16 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Skocz do:  
Powered by phpBB® Forum Software © phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL