Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Kog tipa je uneti znak sa tastature

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Kog tipa je uneti znak sa tastature

[ Pregleda: 3626 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Gajic
Belgrade

Član broj: 126684
Poruke: 29
*.static.ikomline.net.



Profil

icon [Zadatak] Kog tipa je uneti znak sa tastature09.06.2008. u 14:57 - pre 193 meseci
Ovako,
Dobio sam zadatak da program ispise kog je tipa uneti znak sa tastature.

Nije mi jasno kako bi trebalo da deklarisem kog je tipa podatak koji unosim? Mogu da predpostavim da bi to trebalo da bude "unsigned", ali ne znam kako posle da ispitam kog je tipa uneti znak. Jer zadatak zahteva da se nakon unosenja ispita da li je u pitanju veliko slovo, malo slovo, broj, ili specijalni znak!

Moze li me neko posavetovati za ovo? Hitno mi je potrebna pomoc...
 
Odgovor na temu

POW R TOC H
Dark Side of The Moon

Član broj: 174541
Poruke: 31
*.cpe.vektor.net.



Profil

icon Re: [Zadatak] Kog tipa je uneti znak sa tastature09.06.2008. u 16:35 - pre 193 meseci
Za proveravanje da li su u pitanju slova ili brojevi (ili ostali znaci), i da li su mala slova ili velika, koristi sledece funkcije iz string.h :
int isdigit ( int c );
int isalnum ( int c );
int isalpha ( int c );
int isupper ( int c );
int iscntrl ( int c );

Mislim da imena funkcija objasnjavaju sve. Osim mozda isalnum() koji vraca 1 ako je vrednost ili broj ili slovo, a ako nije, onda vraca nulu.
 
Odgovor na temu

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.PPPoE-3945.sa.bih.net.ba.



Profil

icon Re: [Zadatak] Kog tipa je uneti znak sa tastature09.06.2008. u 20:42 - pre 193 meseci
Evo možda nešto ovako:
Code:

#include <iostream>
using namespace std;

template <typename Tip>
void KojiJeTip (Tip n){
    if ( sizeof( n ) == 4) cout << "Unesen je int"<<endl;
    else if( sizeof( n ) == 8 ) cout << "Unesen je double"<<endl;
    else if( sizeof( n ) == 1 ) cout << "Unesen je char"<<endl;
}

int main(void){
    cout<<"Koliko memorije zauzimaju pojedine varijable: "<<endl;
    cout<<"int: "<< sizeof( int ) << endl;
    cout<<"double: "<< sizeof( double ) << endl;
    cout<<"char: "<< sizeof( char ) << endl;
    cout<<"---------------------------------"<<endl;

    KojiJeTip('c');
    KojiJeTip (1);
    KojiJeTip (2.27); 
    return 0;


evo izlaz poziva ovih funkcija:

Citat:

./velicine
Koliko memorije zauzimaju pojedine varijable:
int: 4
double: 8
char: 1
---------------------------------
Unesen je char
Unesen je int
Unesen je double



if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

Aleksandar Gajic
Belgrade

Član broj: 126684
Poruke: 29
*.static.ikomline.net.



Profil

icon Re: [Zadatak] Kog tipa je uneti znak sa tastature09.06.2008. u 21:22 - pre 193 meseci
Citat:
xeron: Evo možda nešto ovako:
Code:

#include <iostream>
using namespace std;

template <typename Tip>
void KojiJeTip (Tip n){
    if ( sizeof( n ) == 4) cout << "Unesen je int"<<endl;
    else if( sizeof( n ) == 8 ) cout << "Unesen je double"<<endl;
    else if( sizeof( n ) == 1 ) cout << "Unesen je char"<<endl;
}

int main(void){
    cout<<"Koliko memorije zauzimaju pojedine varijable: "<<endl;
    cout<<"int: "<< sizeof( int ) << endl;
    cout<<"double: "<< sizeof( double ) << endl;
    cout<<"char: "<< sizeof( char ) << endl;
    cout<<"---------------------------------"<<endl;

    KojiJeTip('c');
    KojiJeTip (1);
    KojiJeTip (2.27); 
    return 0;


evo izlaz poziva ovih funkcija:


Ovo mi lici na C++ ako se ne varam? Meni je potrebno ovo u C-u.

Sto se ovoga string tice, ja ne znam sta da radim sa tim funkcijama, odnosno kako se koriste u programu... Provericu to na netu negde, a ako ne nadjem icicu starom dobrom tehnologijom "||" (npr. if (znak=="a" || znak=="b" || znak=="c"......)) :)
 
Odgovor na temu

POW R TOC H
Dark Side of The Moon

Član broj: 174541
Poruke: 31
*.cpe.vektor.net.



Profil

icon Re: [Zadatak] Kog tipa je uneti znak sa tastature09.06.2008. u 21:50 - pre 193 meseci
To sto ti je xeron napisao nije tacno (oprosti xeron-e), iz jednog razloga :
Funkcija koja odredjuje tip u stvari odredjuje tip podatka promenljive u kojoj cuvas informaciju. Ako odlucis da cuvas 'c' u promenljivoj tipa int, on ce prepoznati int, zato sto je char < int i moze savrseno da stane. Koju god promenljivu koristis za cuvanje podataka, sizeof() ce ti uvek reci samo njen tip. Ovo sto je on napisao i dalje nije tacno, jer velicina tipova int, double i short (i ostalih, osim char) je promenljiva, od platforme do platforme, a ovakva je (pouzdano) samo na 32-bintim x86 arhitekturama. Mada i dalje zavisi od samog OS-a :)
Sve u svemu, 'tip podatka' je apstrakcija koju su uveli visi programski jezici (visi od assembly-a), a svaki podatak je generalno niz jedinica i nula, ili gledano u okviru najmanjih korisnih celija - niz bajtova. Informaciju velicine 1 bajt mozes da stavis u ono sto C zove : char, int, unsigned int, short, long... Sve u svemu, tip podatka je (u vecini slucajeva) samo broj bajtova odvojen za tu promenljivu, pa tako nikad ne mozes da kazes da li je neki podatak ovo ili ono.

Ono sto mozes, jeste da znas sledece :
unsigned int znaci prosto 'ceo broj bez -' i moze da ima duplo vecu pozitivnu vrednost nego signed int. Razlog za to je prost. Na primer, signed int moze biti od -32767 do 32767, a unsigned int 65535. Nadam se da je ovo donekle pomoglo :)
 
Odgovor na temu

Aleksandar Gajic
Belgrade

Član broj: 126684
Poruke: 29
*.static.ikomline.net.



Profil

icon Re: [Zadatak] Kog tipa je uneti znak sa tastature09.06.2008. u 22:48 - pre 193 meseci
Evo kako sam ja uradio ovo... jedino sto nisam uspeo je da mi ispise da li je unet specijalni karakter, tipa !@#$%&*)_

A za ostalo program izgleda ovako...

Code:

#include <stdio.h>
#include <ctype.h>

int main ()
{
    char znak;
    scanf( "%c", &znak );
    if (islower (znak))
        printf ("Uneti znak je malo slovo.\n");
    if (isupper (znak))
        printf ("Uneti znak je veliko slovo.\n");
    if (isdigit (znak))
        printf ("Uneti znak je broj.\n");
    if (isspace (znak))
        printf ("Uneti znak je prazno polje.\n");
return 0;
}
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: [Zadatak] Kog tipa je uneti znak sa tastature10.06.2008. u 00:00 - pre 193 meseci
Mozes ovako (mada si skoro sve uradio)
Ponadji negde ASCII Character Codes tabelu. Ona pokazuje koja je brojevna vrednos svakog znaka (npr. A = 65)
Code:

#include <stdio.h>

int main ()
{
    printf("Unesi znak\n");
    char znak;
    scanf( "%c", &znak );
    
    if((znak > 96) && (znak < 123))
        printf ("Uneti znak je malo slovo.\n");
    if((znak > 64) && (znak < 91))
        printf ("Uneti znak je veliko slovo.\n");
    if((znak > 47) && (znak < 58))
        printf ("Uneti znak je broj.\n");
    if(znak == 32)
        printf ("Uneti znak je prazno polje.\n");
    if((znak > 32) && (znak < 48))
        printf ("Uneti znak je specijalni znak.\n"); // OSTALI ZNAKOVI
    if((znak >57) && (znak < 65))
        printf ("Uneti znak je specijalni znak.\n"); // OSTALI ZNAKOVI
    if((znak >122) && (znak <128))
        printf ("Uneti znak je specijalni znak.\n"); // OSTALI ZNAKOVI
    return 0;
}


 
Odgovor na temu

Aleksandar Gajic
Belgrade

Član broj: 126684
Poruke: 29
*.static.ikomline.net.



Profil

icon Re: [Zadatak] Kog tipa je uneti znak sa tastature10.06.2008. u 14:29 - pre 193 meseci
Ma dobro je i ovo, samo sto na kraju moram da dodam else za specijalne znakove, ovo sam predao i bilo je ok. Hvala na pomoci!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Kog tipa je uneti znak sa tastature

[ Pregleda: 3626 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.