Jednoduchy program v C

Programovacie jazyky, rady, poradňa...
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

ja by som to takto poriesil:

Kód: Vybrať všetko

#include <stdio.h>
#include <stdlib.h>

char pismena[10][8] =
{
     "","","abcABC","defDEF","ghiGHI","jklJKL","mnoMNO","pqrsPQRS","tuvTUV","wxyzWXYZ"
};

int main(int argc, char *argv[])
{
  printf("Zadaj pismeno, a ja Ti poviem odpovedajucu cislicu na telefone.\n");
  char chr=getchar();
  int i,j;
  for(i=2;i<10;i++)
  {
          for(j=0;j<8;j++)
          {
                  if(pismena[i][j]==chr)printf("Cislica %d odpoveda pismenu %c na telefone.\n",i,chr);
          }
  }
  system("PAUSE");	
  return 0;
}
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 »

Program kalendar

Vstupom do tohto programu je daný rok a deň, na ktorý padne prvého januára.

Program po načítaní týchto dvoch údajov vytlačí kalendár na celý rok.

Vyžaduje sa používanie funkcii, komentár a správny štýl programovania. Roky, ktoré sú delitelné 4 sú priestupné roky. Táto úloha, sa dá implementovať ako tlačenie 12 kalendárov, jeden pre každý mesiac, pričom ako vstup treba poznať deň, na ktorý padne prvý deň mesiaca a počet dní v mesiaci. Každý nasledujúci mesiac začína dňom, ktorý následuje posledný deň predchádzajúceho mesiaca.

Vzorový beh programu

Zadaj rok, pre ktorý chceš kalendár?

2002

Na ktorý deň padne prvý január v tomto roku?

2

2002

Január

P U S Š P S N

--------------------------

1 2 3 4 5 6

7 8 9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30 31

Február

P U S Š P S N

--------------------------

1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28

....

Toto viete ?
addictor
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 419
Registrovaný: 28 dec 2007, 13:34
Bydlisko: MT / BA
Kontaktovať používateľa:

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

stavim sa, ze si prvak na FEIke... moj spolubyvajuci ma take iste ulohy....
BTW: rada odomna... skuaj sam a ked ti to nepojde, sendni sem tvoj zdrojak a my sa pokusime poradit, bo takto sa nenaucis ani prd a na skuske budes tazko hladat radu na hojkovi... ;)
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 »

addictor napísal:stavim sa, ze si prvak na FEIke... moj spolubyvajuci ma take iste ulohy....
BTW: rada odomna... skuaj sam a ked ti to nepojde, sendni sem tvoj zdrojak a mi sa pokusime poradit, bo takto sa nenaucis ani prd a na skuske budes tazko hladat radu na hojkovi... ;)
Sakra som odhaleny :oops:
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

preco nam v skole nedavaju take pekne ulohy :(
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 »

Charger napísal:preco nam v skole nedavaju take pekne ulohy :(
su lahke :) tak mi to sprav a budem ti vdacny :lol:
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

sa mi s tym nechce bavit... cecko budeme brat az buduci rok :D do kedy to potrebujes? mozno by som si nasiel chvilku casu cez vikend
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 »

Charger napísal:sa mi s tym nechce bavit... cecko budeme brat az buduci rok :D do kedy to potrebujes? mozno by som si nasiel chvilku casu cez vikend
do buduceho stvrtku :) inak dik zatim ;)
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

som sa nudil dnes vecer tak som nakodil nieco :) uz to je asi tak na 80% uz vypisuje kalendar ale musim spravit aby to vypisovalo pekne pod seba

//autoeditácia príspevku ( 16 Oct 2008, 23:06 )
ja som to cele prekodil mal som chaos, teraz je v tom mensi chaos :D kodil som to na rychlo v devc++, funguje to ako ma len si to uprav, dkae komentare a pod

Kód: Vybrať všetko

#include <stdio.h>
#include <stdlib.h>

#define POCET_MESIACOV 12

int rok;               //zadany rok od uzivatela
int prvyden;           //zadany prvy den od uzivatela

int pocetdni[POCET_MESIACOV] = {31,29,31,30,31,30,31,31,30,31,30,31};
char nazvymesiacov[POCET_MESIACOV][10]={"Januar","Februar","Marec","April","Maj","Jun","Jul","August","September","Oktober","November","December"};

void ZobrazRok(int rok)
{
     printf("_________________________________________________\n");
     printf("Rok %d\n",rok);
     printf("_________________________________________________\n");
     int i,j,k;
     int tmp;
     int den=prvyden;

     for(i=0;i<POCET_MESIACOV;i++)
     {                                                                                                                                         
          printf("%s (%d/%d)\n",nazvymesiacov[i],i+1,rok);
          printf("P   U   S   Š   P   S   N \n");
          printf("--------------------------\n");

          if(den==2)printf("    ");
          if(den==3)printf("        ");
          if(den==4)printf("            ");
          if(den==5)printf("        ");
          if(den==5)printf("        ");
          if(den==6)printf("                    ");
          if(den==7)printf("                        ");
          
          for(j=1;j<=pocetdni[i];j++)
          {
               if(j<9)printf("%d   ",j);
               else if(j==9)printf("%d   ",j);
               else if(j>9)printf("%d  ",j);
               den++;
               if(den==8)
               {
                   den=1;
                   printf("\n");
               }                            
          }
          printf("\n\n");                 
     }   
}

int main(int argc, char *argv[])
{
  //najprv potrebujeme zistit udaje na vypocet: 
  printf("Zadaj rok, pre ktory chces kalendar\n");
  scanf("%d",&rok);
  printf("Na ktory den padne prvy januar v tomto roku?\n");
  scanf("%d",&prvyden);
  //Zobrazime rok:
  ZobrazRok(rok);
  system("PAUSE");	
  return 0;
}
:lol: :lol: :lol: :lol: :lol: :lol: :(
tavenacik
Novice
Novice
Príspevky: 8
Registrovaný: 22 máj 2008, 19:15

charger

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

=====charger ===== Super... este ze su ludia co sa nudia :D ... len taku jednu malu chybycku tam mas... nerozoznava to priestupne roky ale inak to funguje skvelo
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

to sa mi nechcelo robit.. :D teraz my mame na ulohu spravit program ktory zisti ci je priestupny rok ci nie :lol:
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 »

Charger a podla coho si daval tie medzeri v printf (" ") ???
a plis vysvetlis mi trosku podrobnejsie tuto pasaz

Kód: Vybrať všetko

for(j=1;j<=pocetdni[i];j++)
          {
               if(j<9)printf("%d   ",j);
               else if(j==9)printf("%d   ",j);
               else if(j>9)printf("%d  ",j);
               den++;
               if(den==8)
               {
                   den=1;
                   printf("\n");
               }                           
          }
          printf("\n\n");       
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

tie medzery som daval podla toho ktorym dnom zacina mesiac aby to bolo zarovnane.. skoro som to mal cez for cyklus ale to volako blbo tak som to tak vyriesil nie najlepsie ale funguje to :lol:

for(j=1;j<=pocetdni;j++)
{
if(j<9)printf("%d ",j);//ak je cislo mensie ako 9 tak da veciu mezeru lebo to je jeden znak to cislo
else if(j==9)printf("%d ",j);
else if(j>9)printf("%d ",j);//ak je cislo vecie ako 9 tak da mensiu medzeru
den++;
if(den==8)//toto ked dojde na koniec tyzdna zalomi riadok
{
den=1;
printf("\n");
}
}
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 vie niekto ako z toho spravim to aby mi to spravilo aj textovy dokument?
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 »

no namiesto toho aby si to poslal na terminalovy vystup, ulozis to do txt suboru, popripade mozes spravit aj to aj to..
v prvom rade si subor musis vytvorit (ak existuje, tak otvorit na zapisovanie) a potom do neho mozes zapisovat pomocou funkcie fprintf();
studuj
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

neviem co robis na tej skole ked nemas voebc zaujem u studium...
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 »

Charger napísal:neviem co robis na tej skole ked nemas voebc zaujem u studium...
preferujuce Matika a Logicke systemy za 6 kreditov na ostatne neni cas :)

inak uz som to dokoncil diky za pomoc tralaaaa

Kód: Vybrať všetko

#include "stdafx.h"
#include "stdlib.h"

#define POCET_MESIACOV 12

int rok;               //zadany rok od uzivatela
int prvyden;           //zadany prvy den od uzivatela

int pocetdni[POCET_MESIACOV] = {31,28,31,30,31,30,31,31,30,31,30,31};
char nazvymesiacov[POCET_MESIACOV][10]={"Januar","Februar","Marec","April","Maj","Jun","Jul","August","September","Oktober","November","December"};

void ZobrazRok(int rok)
{
     printf("_________________________________________________\n");
     printf("Rok %d\n",rok);
     printf("_________________________________________________\n");
     int i,j,k;
     int tmp;
     int den=prvyden;

     for(i=0;i<POCET_MESIACOV;i++)
     {                                                                                                                                         
          printf("%s (%d/%d)\n",nazvymesiacov[i],i+1,rok);
          printf("P   U   S   Š   P   S   N \n");
          printf("--------------------------\n");

          if(den==2)printf("    ");
          if(den==3)printf("        ");
          if(den==4)printf("            ");
          if(den==5)printf("        ");
          if(den==5)printf("        ");
          if(den==6)printf("                    ");
          if(den==7)printf("                        ");
         
          for(j=1;j<=pocetdni[i];j++)
          {
               if(j<9)printf("%d   ",j);
               else if(j==9)printf("%d   ",j);
               else if(j>9)printf("%d  ",j);
               den++;
               if(den==8)
               {
                   den=1;
                   printf("\n");
               }                           
          }
          printf("\n\n");                 
     }   
}
void Ulozrok(int rok)
{ 
     FILE *fw;
     if((fw=fopen("KALENDAR.TXT", "w"))==NULL)
     {
     printf("Subor KALENDAR.TXT sa nepodarilo otvorit\n");
     }
     fprintf(fw, "_________________________________________________\n");
     fprintf(fw, "Rok %d\n",rok);
     fprintf(fw, "_________________________________________________\n");
     int i,j,k;
     int tmp;
     int den=prvyden;
     if(rok%4==0)
	 pocetdni[1]=29;
     for(i=0;i<POCET_MESIACOV;i++)
     {                                                                                                                                         
          fprintf(fw, "%s (%d/%d)\n",nazvymesiacov[i],i+1,rok);
          fprintf(fw, "P   U   S   Š   P   S   N \n");
          fprintf(fw, "--------------------------\n");

          if(den==2)fprintf(fw, "    ");
          if(den==3)fprintf(fw, "        ");
          if(den==4)fprintf(fw, "            ");
          if(den==5)fprintf(fw, "        ");
          if(den==5)fprintf(fw, "        ");
          if(den==6)fprintf(fw, "                    ");
          if(den==7)fprintf(fw, "                        ");
         
          for(j=1;j<=pocetdni[i];j++)
          {
               if(j<9)fprintf(fw, "%d   ",j);
               else if(j==9)fprintf(fw, "%d   ",j);
               else if(j>9)fprintf(fw, "%d  ",j);
               den++;
               if(den==8)
               {
                   den=1;
                   fprintf(fw, "\n");
               }                           
          }
          fprintf(fw, "\n\n");                 
     }
	 if(fclose(fw)==EOF){
	 printf("Subor sa nepodarilo uzavriet");
	 }
}

int main(int argc, char *argv[])
{
  //najprv potrebujeme zistit udaje na vypocet:
  printf("Zadaj rok, pre ktory chces kalendar\n");
  scanf("%d",&rok);
  printf("Na ktory den padne prvy januar v tomto roku?\n");
  scanf("%d",&prvyden);
  //Zobrazime rok:
  ZobrazRok(rok);
  Ulozrok(rok);
  system("PAUSE");   
  return 0;
} 
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

toto si este dako krajsie uprav:

if(den==2)fprintf(fw, " ");
if(den==3)fprintf(fw, " ");
if(den==4)fprintf(fw, " ");
if(den==5)fprintf(fw, " ");
if(den==5)fprintf(fw, " ");
if(den==6)fprintf(fw, " ");
if(den==7)fprintf(fw, " ");

a btw. matematicke a logicke systemy za 6 kreditov nebudes mat pocas celeho studia :) alebo si mal ist studovat matematiku ked ta bavi..
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 »

mno v prvom rade chcem podakovat vsetkym ktori mi pomohli... :aasmile1: pre Vas

teraz mam ale vacsi problem viete mi pomoct s tymto?
http://ap.urpi.fei.stuba.sk/ap/blok1.php potrebujem minimalne 5b z 12b
a toto uz niesu lahke ulohy :?
potreboval by som poradit s Ulohami 11,12,13 a 17
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 »

že nie sú lahké? Si si istý že tú školu zvládaš? To sú jednoduché úlohy, akých na cviku musíš stihnúť spraviť niekoľko. Aspoň skús, daj čo máš a my ti pomôžeme ale nechci aby ti to niekto vypracoval celé lebo sa to nikdy nenaučíš
Napísať odpoveď