Jednoduchy program v C

Programovacie jazyky, rady, poradňa...
MP4-27
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2094
Registrovaný: 10 nov 2006, 20:11
Bydlisko: tak určité:D
Kontaktovať používateľa:

Jednoduchy program v C

Príspevok od používateľa MP4-27 »

Úloha: Napíšte program v jazyku C, ktorý bude čítať data zadané z klávesnici počítača a vytlačí na monitore odpovedajúcu číslicu na Vašom mobilnom telefóne. Písmena a číslice na telefóne sú usporiadané následovným spôsobom:

2 = ABC 4 = GHI 6 = MNO 8 = TUV

3 = DEF 5 = JKL 7 = PQRS 9 = WXYZ.

Program bude fungovať takto:

Zadaj písmeno, a ja Ti poviem odpovedajúcu číslicu na telefóne.

Príklad č. 1

Zadaj písmeno, a ja Ti poviem odpovedajúcu číslicu na telefóne.

R

Číslica 7 odpovedá písmenu R na telefóne.

nenapise mi tu niekto zdrojak pomocou else,scanf,printf,if ? plis dam :plus:
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

sice neviem moc C ale nevypada to ani tazka a este ktomu ak by si sa to mal ucit tak sa to radsej nauc uvidis ze to bude lepsie :P
tomPD
Star
Star
Používateľov profilový obrázok
Príspevky: 679
Registrovaný: 17 okt 2005, 14:41
Bydlisko: Senec
Kontaktovať používateľa:

Príspevok od používateľa tomPD »

Tu to mas ale mal by si sa zacat ucit ak chces niekedy programovat ;)

Kód: Vybrať všetko

#include <stdio.h>
int main ()
{
  char i;
    printf("Zadaj pismeno, a ja Ti poviem odpovedajucu cislicu na telefone.\n");
    i=getchar();
    if(i=='a' || i=='b' || i=='c')
    {
      printf("Cislica 2 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='d' || i=='e' || i=='f')
    {
      printf("Cislica 3 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='g' || i=='h' || i=='i')
    {
      printf("Cislica 4 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='j' || i=='k' || i=='l')
    {
      printf("Cislica 5 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='m' || i=='n' || i=='o')
    {
      printf("Cislica 6 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='p' || i=='q' || i=='r' || i=='s')
    {
      printf("Cislica 7 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='t' || i=='u' || i=='v')
    {
      printf("Cislica 8 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='w' || i=='x' || i=='y' || i=='z')
    {
      printf("Cislica 9 odpoveda pismenu %c na telefone.\n",i);
    }
  return 0;
}
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

tomPD napísal:Tu to mas ale mal by si sa zacat ucit ak chces niekedy programovat ;)
nič v zlom, ale aj ty :). Char je predsa ordinálny údajový typ, použitie switch-case je na toto ako stvorené a ty použiješ 10 podmienok. A keď už cez podmienky, nemusel si dávať 3x or do každej podmienky, stačilo zadať rozsah (prvý a posledný znak). Ale v prípade že si si trénoval prstoklad tak v pohode :)
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Príspevok od používateľa Nadeo »

nenapise mi tu niekto zdrojak pomocou else,scanf,printf,if ?
MP4-27
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2094
Registrovaný: 10 nov 2006, 20:11
Bydlisko: tak určité:D
Kontaktovať používateľa:

Príspevok od používateľa MP4-27 »

tomPD-mam to ako ulohu ,programovanie mi moc nejde a ani ma to nebavi ja som odbor Telekomunikacie...
audiotrack napísal:nič v zlom, ale aj ty :). Char je predsa ordinálny údajový typ, použitie switch-case je na toto ako stvorené a ty použiješ 10 podmienok. A keď už cez podmienky, nemusel si dávať 3x or do každej podmienky, stačilo zadať rozsah (prvý a posledný znak). Ale v prípade že si si trénoval prstoklad tak v pohode :)
ak vies pomocou switch a case tak napis sem budem len rad :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

šak ešte pred switch by som dal if na zistenie či je znak z rozsahu a-z (aby nedal číslo alebo znak s diakrytikou) :D
tomPD
Star
Star
Používateľov profilový obrázok
Príspevky: 679
Registrovaný: 17 okt 2005, 14:41
Bydlisko: Senec
Kontaktovať používateľa:

Príspevok od používateľa tomPD »

if - else som pouzil kvoli tomu ze napisal ze tam chce mat if + else, tie rozsahy ok bolo by to kusok kratsie ale pre zaciatocnika myslim ze je to takto lepsie
MP4-27
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2094
Registrovaný: 10 nov 2006, 20:11
Bydlisko: tak určité:D
Kontaktovať používateľa:

Príspevok od používateľa MP4-27 »

tomPD napísal:if - else som pouzil kvoli tomu ze napisal ze tam chce mat if + else, tie rozsahy ok bolo by to kusok kratsie ale pre zaciatocnika myslim ze je to takto lepsie
da sa aj kratsie napisat ten program?
tomPD
Star
Star
Používateľov profilový obrázok
Príspevky: 679
Registrovaný: 17 okt 2005, 14:41
Bydlisko: Senec
Kontaktovať používateľa:

Príspevok od používateľa tomPD »

no ked namiesto if - else puzijes switch a tie podminky napises namiesto
i=='a' || i=='b' || i=='c'
toto
i >='a' && i <='c'
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

až na to, že keď tam bude switch tak tam nebudú podmienky, a bolo by dobre ešte použiť tolower() aby nemusel overovať malé aj velké písmená
tuti
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 740
Registrovaný: 01 okt 2006, 19:23
Bydlisko: Prievidza

Príspevok od používateľa tuti »

asi takto

Kód: Vybrať všetko

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

int main ()
{
    char i;
    printf("Zadaj pismeno, a ja Ti poviem odpovedajucu cislicu na telefone.\n");
    i=tolower(getchar());
     switch( i )
     {
        case 'a' :
        case 'b' :
        case 'c' :
         printf("Cislica 2 odpoveda pismenu %c na telefone.\n",i);
         break;
.
.
.
        default  :
           printf( "%c nie je pismeno.\n", i );
           break;
    } 
}
pripadne mozes napisat case 'a': case 'b' case 'c': do jedneho riedku
MP4-27
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2094
Registrovaný: 10 nov 2006, 20:11
Bydlisko: tak určité:D
Kontaktovať používateľa:

Príspevok od používateľa MP4-27 »

chalani zatim diki zajtra ked dotaham MS Visual Studio 6.0 skusim ci to chodi tak dam vediet
konyk87
King
King
Používateľov profilový obrázok
Príspevky: 1709
Registrovaný: 24 okt 2007, 15:56

Príspevok od používateľa konyk87 »

MP4-23 napísal:mno ten program ide ale nevie zobrat velke pismena ako teda to spravit :?:
nefunguje ti tutiho kod (prispevok nad tebou)?
MP4-27
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2094
Registrovaný: 10 nov 2006, 20:11
Bydlisko: tak určité:D
Kontaktovať používateľa:

Príspevok od používateľa MP4-27 »

konyk87 napísal:nefunguje ti tutiho kod (prispevok nad tebou)?
mno problem bude asi v kniznici kedze pouzivam Visual studio 2005
konyk87
King
King
Používateľov profilový obrázok
Príspevky: 1709
Registrovaný: 24 okt 2007, 15:56

Príspevok od používateľa konyk87 »

v tom pripade bud pockas na VS6 alebo zistis ako sa vola ta kniznica v 2005 (ak je problem tam) alebo si to zahrnies do podmienky:

Kód: Vybrať všetko

if(i=='a' || i=='b' || i=='c' || i=='A' || i=='B' || i=='C')
    {
      printf("Cislica 2 odpoveda pismenu %c na telefone.\n",i);
    }
    else if(i=='d' || i=='e' || i=='f' || i=='D' || i=='E' || i=='F')
    {
      printf("Cislica 3 odpoveda pismenu %c na telefone.\n",i);
    } 
atd.
MP4-27
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2094
Registrovaný: 10 nov 2006, 20:11
Bydlisko: tak určité:D
Kontaktovať používateľa:

Príspevok od používateľa MP4-27 »

a moze to byt aj takto :?:

Kód: Vybrať všetko

if(i >='a' && i <='C')
    {
      printf("Cislica 2 odpoveda pismenu %c na telefone.\n",i);
    }
    switch(i >='d' && i <='F')
    {
      printf("Cislica 3 odpoveda pismenu %c na telefone.\n",i);
    }
atd.
kurnik program spustim ale ked zadam nejake pismeno nehodi mi to odpoved a program sa hned zavre :?
konyk87
King
King
Používateľov profilový obrázok
Príspevky: 1709
Registrovaný: 24 okt 2007, 15:56

Príspevok od používateľa konyk87 »

urcite nie...toto by fungovalo, keby bolo poradie znakov v ASCII tabulke a, A, b, B, c, C...
pri stlaceni akehokolvek maleho pismena alebo A, B, C by t vypisalo cislo 2, kedze najskor idu velke pismena, potom nejake specialne znaky ([, /, ], ^, _, `) a az potom male pismena..

ASCII tabulka
MP4-23 napísal:spustim ale ked zadam nejake pismeno nehodi mi to odpoved a program sa hned zavre :?
skus dat pred poslednu zatvorku } nieco taketo:

Kód: Vybrať všetko

getchar();
MP4-27
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2094
Registrovaný: 10 nov 2006, 20:11
Bydlisko: tak určité:D
Kontaktovať používateľa:

Príspevok od používateľa MP4-27 »

konyk87 pocuj skus skompilovat a spustit ten uplne prvy program ze ci ti to ide
Ak ti pojde prosim ta posli mi ho na mail [email protected] zatim dik
mne to totiz nejde program sa hned zavre a ja netusim preco
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

uplne na koniec, pred } zatvorku hod prikaz

Kód: Vybrať všetko

system("pause");
Program ti bude ficat, nezatvori sa hned...
Napísať odpoveď