Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 6.731 pregleda

Najnovija ↓

[Zadatak] Program za proveru poznavanja engleske abecede 23.05.2007. u 11:41 · pre 237 meseci #1
Molio bih moderatore da ne brisu ovo bar do veceras, tema sam postavio na dva mesta, ali radi brzeg odgovora molio bih da ne brisu nista do veceras bar... ;)
Tekst problema:
Citat:

Napisati program na jeziku C koji proverava poznavanje engleske abecede. Korisnik unosi slova engleske abecede u bilo kom redosledu obliku rečenice, a zatim program prikazuje celu abecedu na sledeći način: slovo koje je korisnik uneo tačno jednom prikazuje se kao malo slovo, a slovo koje je korisnik uneo više puta ili nijednom, prikazuje se kao veliko slovo. Ukoliko je korisnik uneo sva slova abecede tačno po jednom, prikazuje se samo poruka "BRAVO!"

Please Treba mi brza pomoc TNX unapred :)
Potpis

My IT View Of Life-BrLOG-Delphi for PHP


» LinkedIn
Re: [Zadatak] Program za proveru poznavanja engleske abecede 23.05.2007. u 15:56 · pre 237 meseci #3
Code:

#include <stdio.h>  // Za printf
#include <stdlib.h> // Za malloc, free...
#include <string.h> // Za strlen

#define BUFF_LEN 1024 // Maximalna duzina linije koju korisnik upisuje
#define ABC_LEN 26    // Broj slova u engleskoj abecedi

int main(int argc, char *argv[])
{
  int i;
  /* 
  ** Linija koju upisuje korisnik 
  */
  char *line; 
  /*
  ** Sadrzi broj unetih slova 
  */
  int *abc;
  
  line = malloc(sizeof(char) * BUFF_LEN);
  abc = malloc(sizeof(int) * ABC_LEN);
  
  /*
  ** U pocetku, nemamo nijedno slovo, znaci, abc je zvugde jednak nuli
  */
  memset(abc, 0, sizeof(int) * ABC_LEN);
  
  /* 
  ** Citamo liniju
  */
  read(0, line, BUFF_LEN);
  
  /*
  ** Gledamo celu liniju 
  */
  for(i = 0; i < strlen(line); i++)
    {
      /*
      ** Ako je malo slovo, stavim ga u veliko 
      */
      if(line[i] >= 97 && line[i] <= 122)
    {
      line[i] = line[i] - 32;
    }
      
      /* Ako je karakter slovo, inkrementiram abc[line[i] - 65]
      ** na primer, ako je slovo A = 65 (ascii), onda abc[65 - 65]++
      **  znaci, abc[0] = 1 itd.
      */
      if(line[i] >= 65 && line[i] <= 90)
        {
      abc[line[i] - 65]++;
        }
    }
  
  /*
  ** Gledamo prvo da li imamo sva slova abecede 
  */
  for(i = 0; i < ABC_LEN; i++)
    {
      if(abc[i] != 1)
    break;
    }

  /* 
  ** Ako ima, BRAVO, i bezimo 
  */
  if(i == ABC_LEN)
    {
      printf("BRAVO!\n");
      free(abc);
      free(line);
      exit(0);
    }

  /* Ako je abc[i] == 1, znaci da smo uneli samo jednom neko slovo,
  ** izbacujemo malo slovo, ako abc[i] != 1, onda izbacujemo veliko slovo
  */
  for(i = 0; i < ABC_LEN; i++)
    {
      if(abc[i] == 1)
    {
      printf("%c", i + 97);
    }
      else
    {
      printf("%c", i + 65);
    }
    }
  
  printf("\n");
  
  free(abc);
  free(line);
  
  return(0);
}


Nisam uopste gledao moguce greske malloc-a ili read-a, to tebi ostavljam.
A ti sedi i uci da programiras. Imao si srece ovog puta sto mi se ne uci pas trazim izgovore da ne pocnem da ucim.
Potpis
"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
Re: [Zadatak] Program za proveru poznavanja engleske abecede 23.05.2007. u 20:35 · pre 236 meseci #6
Ako pogledas sa leve strane mog posta, videces da sam na linuxu, a Delphi-ja nema za linux.
A pascal sam odavno batalio, jos od gimnazije...
Potpis
"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme