Forum AUTOMATYKA I ROBOTYKA, GR. 22 Strona Główna

AUTOMATYKA I ROBOTYKA, GR. 22
WYDZIAŁ INŻYNIERII MECHANICZNEJ i ROBOTYKI
 

Programy w C

 
Napisz nowy temat   Odpowiedz do tematu    Forum AUTOMATYKA I ROBOTYKA, GR. 22 Strona Główna -> Informatyka
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
michelin




Dołączył: 10 Lis 2006
Posty: 25
Przeczytał: 0 tematów

Skąd: Żagań / Kraków MS-AGH

PostWysłany: Wto 0:51, 28 Lis 2006    Temat postu: Programy w C

Może ktoś wrzucić na forum albo na naszego maila(lepiej na forum) programy zrobione w C. Napewno pomoże mi i innym nauczyć się C.

Z góry big thx Very Happy


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
margo




Dołączył: 10 Lis 2006
Posty: 179
Przeczytał: 0 tematów

Skąd: Wola Mędrzechowska

PostWysłany: Wto 9:26, 28 Lis 2006    Temat postu:

Chodzi o jakieś konkretne programy czy mogą być jakiekolwiek?

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
WGS
Admin



Dołączył: 09 Lis 2006
Posty: 71
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Wto 10:48, 28 Lis 2006    Temat postu:

Wszytko zrobione na funkcjach i działa, pozniej wrzuce cos jeszcze ...


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

//Ciąg Fibonacciego

#include <stdio.h>
#include <math.h>

//program pokazyjący n wyrazów ciągu Fibonacci'ego

int fibonacci(int n) //funkcja obliczająca n-ty wyraz ciągu Fibonacci'ego
{
switch(n)
{
case 1: return 1; break;
case 2: return 1; break;
default: return fibonacci(n-2)+fibonacci(n-1); break;
}
}

main()
{
int n; //deklaracja zmiennych
printf("Podaj n:\n");
scanf("%d",&n);

n=fibonacci(n);
printf("n-ty wyraz ciagu Fibonacciego to:\n");
printf("%d",n);

getch();
}

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

//Silnia

#include <stdio.h>
#include <math.h>


int silnia(int a)
{
switch (a)
{
case 0: return 1; break;
case 1: return 1; break;
default: return a*silnia(a-1);
}
}

main()
{
int a,z;
printf("SILNIA\n");
printf("Podaj liczbe \n");
scanf("%d",&a);

z=silnia(a);

printf("Wynik to ");
printf("%.0d",z);
getch();
}

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

//Kalkulator

#include <stdio.h>
#include <math.h>
#define PI 3.14159265

int kalkulator (int n)//funkcja obliczająca wynik
{
switch(n)
{
case 1:
{
float a,b,z;
printf("SUMA\n");
printf("Podaj pierwsza liczbe\n");
scanf("%g",&a);
printf("Podaj druga liczbe\n");
scanf("%g",&b);
z=a+b;
printf("Wynik to ");
printf("%g",z);
};
break;

case 2:
{
float a,b,z;
printf("ROZNICA\n");
printf("Podaj pierwsza liczbe\n");
scanf("%g",&a);
printf("Podaj druga liczbe\n");
scanf("%g",&b);
z=a-b;
printf("Wynik to ");
printf("%g",z);
};
break;

case 3:
{
float a,b,z;
printf("ILOCZYN\n");
printf("Podaj pierwsza liczbe\n");
scanf("%g",&a);
printf("Podaj druga liczbe\n");
scanf("%g",&b);
z=a*b;
printf("Wynik to ");
printf("%g",z);
};
break;

case 4:
{
float a,b,z;
printf("ILORAZ\n");
printf("Podaj dzielna\n");
scanf("%g",&a);
printf("Podaj dzielnik\n(rozny od zera)\n");
scanf("%g",&b);
z=a/b;
printf("Wynik to ");
printf("%g",z);
};
break;

case 5:
{
float a,b,z;
printf("POTEGA\n");
printf("Podaj podstawe\n");
scanf("%g",&a);
printf("Podaj wykladnik\n");
scanf("%g",&b);
z=pow(a,b);
printf("Wynik to ");
printf("%g",z);
};
break;

case 6:
{
float a,b,z;
printf("PIERWIASTEK\n");
printf("Podaj stopien pierwiastka\n");
scanf("%g",&a);
printf("Podaj liczbe pod pierwiastkiem\n");
scanf("%g",&b);
a=1/a;
z=pow(b,a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 7:
{
float a,z;
printf("LOGARYTM NATURALNY\n");
printf("Podaj liczbe logarytmowana\n");
scanf("%g",&a);
z=log(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 8:
{
float a,b,z;
printf("LOGARYTM\n");
printf("Podaj podstawe logarytmu\n");
scanf("%g",&a);
printf("Podaj liczbe logarytmowana\n");
scanf("%g",&b);
z=log10(b)/log10(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 9:
{
int silnia(int a)
{
switch (a)
{
case 0: return 1; break;
case 1: return 1; break;
default: return a*silnia(a-1);
}
}

{
int a,z;
printf("SILNIA n!\n");
printf("Podaj liczbe \n");
scanf("%d",&a);

z=silnia(a);

printf("Wynik to ");
printf("%.0d",z);
};
break;
}

case 10:
{
float a,z;
printf("SINUS\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=sin(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 11:
{
float a,z;
printf("COSINUS\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=cos(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 12:
{
float a,z;
printf("TANGENS\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=tan(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 13:
{
float a,z;
printf("COTANGENS\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=1/(tan(a));
printf("Wynik to ");
printf("%g",z);
};
break;

case 14:
{
float a,z;
printf("ARCUS SINUS\n dla -1<x<1\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=asin(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 15:
{
float a,z;
printf("ARCUS COSINUS\n dla -1<x<1\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=acos(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 16:
{
float a,z;
printf("ARCUS TANGENS\n dla -1<x<1\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=atan(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 17:
{
float a,z;
printf("MODUL\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=fabs(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 18:
{
float a,b,z;
printf("MODULO\n");
printf("Podaj liczbe (dzielna)\n");
scanf("%g",&a);
printf("Podaj liczbe (dzielnik)\n");
scanf("%g",&b);
z=fmod(a,b);
printf("Wynik to ");
printf("%g",z);
};
break;

case 19:
{
float a,z;
printf("2 do potegi x\n");
printf("Podaj liczbe\n");
scanf("%g",&a);
z=exp2(a);
printf("Wynik to ");
printf("%g",z);
};
break;

case 20:
{
float a,b,c,d,z,x;
printf("ROWNANIE KWADRATOWE - PIERWIASTKI\ny=ax^2+bx+c\n");
printf("Podaj wspolczynnik a\n");
scanf("%g",&a);
printf("Podaj wspolczynnik b\n");
scanf("%g",&b);
printf("Podaj wspolczynnik c\n");
scanf("%g",&c);
d=pow(b,2)-4*a*c;

if(d>=0)
{
z=(-b-sqrt(d))/(2*a);
x=(-b+sqrt(d))/(2*a);
printf("Rozwiazania rownania to \n");
printf("%g",z); printf("\n");
printf("%g",x);
}
else printf("Brak rozwiazania\n");


};
break;

case 21:
{
float a,b;
printf("Podaj dlugosc boku kwadratu\n");
scanf("%g",&a);
b=a*a;
printf("Pole to ");
printf("%g",b);
};
break;

case 22:
{
float a,b,c;
printf("Podaj dlugosc pierwszego boku prostokata\n");
scanf("%g",&a);
printf("Podaj dlugosc drugiego boku prostokata\n");
scanf("%g",&b);
c=a*b;
printf("Pole to ");
printf("%g",c);
};
break;

case 23:
{
float a,h,b;
printf("Podaj dlugosc boku trojkata\n");
scanf("%g",&a);
printf("Podaj dlugosc wysokosci opadajacej na podany wczesniej bok\n");
scanf("%g",&h);
b=(a*h)/2;
printf("Pole to ");
printf("%g",b);
};
break;

case 24:
{
float a,h,b;
printf("Podaj dlugosc boku rownolegloboku\n");
scanf("%g",&a);
printf("Podaj dlugosc wysokosci opadajacej na podany wczesniej bok\n");
scanf("%g",&h);
b=a*h;
printf("Pole to ");
printf("%g",b);
};
break;

case 25:
{
float d,e,a;
printf("Podaj dlugosc pierwszej przekatnej rombu\n");
scanf("%g",&d);
printf("Podaj dlugosc drugiej przekatnej rombu\n");
scanf("%g",&e);
a=(d*e)/2;
printf("Pole to ");
printf("%g",a);
};
break;

case 26:
{
float a,b,h,c;
printf("Podaj dlugosc pierwszej podstawy trapezu\n");
scanf("%g",&a);
printf("Podaj dlugosc drugiej podstawy trapezu\n");
scanf("%g",&b);
printf("Podaj dlugosc wysokosci trapezu\n");
scanf("%g",&h);
c=((a+b)*h)/2;
printf("Pole to ");
printf("%g",c);
};
break;

case 27:
{
float a,b,c;
printf("Podaj dlugosc pierwszej przekatnej deltoidu\n");
scanf("%g",&a);
printf("Podaj dlugosc drugiej przekatnej deltoidu\n");
scanf("%g",&b);
c=(a*b)/2;
printf("Pole to ");
printf("%g",c);
};
break;

case 28:
{
float r,c;
printf("Podaj dlugosc promienia kola\n");
scanf("%g",&r);
c=PI*r*r;
printf("Pole to ");
printf("%g",c);
};
break;

case 29:
{
float p,h,c;
printf("Podaj pole podstawy\n");
scanf("%g",&p);
printf("Podaj wysokosc\n");
scanf("%g",&h);
c=p*h;
printf("Pole to ");
printf("%g",c);
};
break;

case 30:
{
float p,h,c;
printf("Podaj pole podstawy\n");
scanf("%g",&p);
printf("Podaj wysokosc\n");
scanf("%g",&h);
c=1/3*(p*h);
printf("Pole to ");
printf("%g",c);
};
break;

case 31:
{
float r,c;
printf("Podaj dlugosc promienia kuli\n");
scanf("%g",&r);
c=4/3*(PI*r*r*r);
printf("Pole to ");
printf("%g",c);
};
break;

case 32:
{
float r,h,c;
printf("Podaj dlugosc promienia podstawy walca\n");
scanf("%g",&r);
printf("Podaj wysokosc walca\n");
scanf("%g",&h);
c=h*(PI*r*r);
printf("Pole to ");
printf("%g",c);
};
break;

case 33:
{
float r,h,c;
printf("Podaj dlugosc promienia podstawy stozka\n");
scanf("%g",&r);
printf("Podaj wysokosc stozka\n");
scanf("%g",&h);
c=1/3*h*(PI*r*r);
printf("Pole to ");
printf("%g",c);
};
break;

default: printf("Miales wpisac liczby od 01 do 33 cieciu\n"); break;

}
}
main()
{
int n;
float z;

printf("Wybierz operacje:\n\nDZIALANIA:\n\n-01-suma\n-02-roznica\n-03-iloczyn\n
-04-iloraz\n-05-potega\n-06-pierwiastek\n-07-logarytm naturalny\n
-08-logarytm\n-09-silnia\n-10-sinus\n-11-cosinus\n-12-tangens\n
-13-cotangens\n-14-arcus sinus\n-15-arcus cosinus\n-16-arcus tangens\n
-17-modul z liczby\n-18-reszta z dzielenia (modulo)\n-19-2 do potegi x\n
-20-pierwiastki rownania kwadratowego\n\nPOLA POWIERZCHNI:\n\n
-21-kwadrat\n-22-prostokat\n-23-trojkat\n-24-rownoleglobok\n
-25-romb\n-26-trapez\n-27-deltoid\n-28-kolo\n\nOBJETOSCI:\n\n
-29-graniastoslup\n-30-ostroslup\n-31-kula\n-32-walec\n-33-stozek\n");
scanf("%d",&n);

z=kalkulator(n);

getch();
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
michelin




Dołączył: 10 Lis 2006
Posty: 25
Przeczytał: 0 tematów

Skąd: Żagań / Kraków MS-AGH

PostWysłany: Wto 13:11, 28 Lis 2006    Temat postu:

THX.


Cytat:

Chodzi o jakieś konkretne programy czy mogą być jakiekolwiek?


Głównie chodziło mi o te co były na zajęciach ale każde się przydadzą Very Happy


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Tymbark




Dołączył: 12 Lis 2006
Posty: 17
Przeczytał: 0 tematów

Skąd: Cormanthor (Sosny)

PostWysłany: Wto 21:11, 28 Lis 2006    Temat postu:


Kod:
//Program nie jest idiotoodporny

#include <stdio.h>
#include <conio.h>
#include <math.h> //biblioteka matematyczna - potrzebna do fukcji potegi

int min2()
 {
  int tab[15]; //tablica, w ktorej nalezy wyszukac minimum
  int pom,min,min2,i,N; //min - minimum; min2 - drugie minimum; N - dlugosc tablicy; i - licznik; pom - zmienna pomocnicza do zamiany min i min2
  printf("Wybrano prezentacje wyszukiwania drugiego minimum w tablicy\nPodaj dlugosc tablicy (2 - 14): ");
  scanf("%d",&N);
  printf("\nWypelnij tablice:\n");
  for(i=1;i<=N;i++)
   scanf("%d",&tab[i]);
  if(tab[1]>tab[2])
   {
    min=tab[2];
    min2=tab[1];
   }
  else
   {
    min=tab[1];
    min2=tab[2];
   }
  for(i=3;i<=N;i++)
   {
    if(tab[i]<min2)
     {
      min2=tab[i];
      if(min2<min)
       {
        pom=min;
        min=min2;
        min2=pom;
       }
     }
   }
  printf("\nMinimum = %d\nDrugie minimum = %d",min,min2);
  getch();
 


 }

int babel()
 {
  int i,j,pom; //i,j - liczniki; pom - zmienna pomocnicza do zamiany komorek tablicy miejscami
  int tab[400]; //tablica do posortowania
  printf("Wybrano prezentacje sortowania babelkowego\nTablica wartosci losowych nieposortowanych:\n");
  getch();
  for(i=0;i<=399;i++)
   {
    tab[i]=rand()%400; //rand zwraca dosc duza liczbe pseudolosowa a po podzieleniu modulo 400 - liczbe z przedzialu 0 - 399
    printf("%d, ",tab[i]);
   }
  getch();
  printf("\nPowyzsza tablica po posortowaniu:\n");
  for(i=0;i<399;i++) //sortowanie babelkowe z mala optymalizacja - mozna zoptymalizowac bardziej ale utrudniloby to zrozumienie kodu
   {
    for(j=0;j<399-i;j++) //wersja bez optymalizacji powinna miec warunek "j<399" zamiast "j<399-i"
     {
      if(tab[j+1]<tab[j])
       {
        pom=tab[j+1];
        tab[j+1]=tab[j];
        tab[j]=pom;
       }
     }
   }
  for(i=0;i<=399;i++)
   printf("%d, ",tab[i]);
  getch();
 }

int lpier()
 {
  int N,i,j; //i,j - liczniki; N - ilosc liczb do przeskanowania (gorna granica przeszukiwanego zbioru)
  short tab[10000]; //deklaracja tablicy wartosci logicznych
  printf("Wybrana zostala funkcja wyznaczajaca wszystkie liczby pierwsze od 1 do N.\nRealizacja zadania za pomoca algorytmu Sita Eratostenesa\nPodaj N: ");
  scanf("%d",&N);
  printf("\n");
  for(i=2;i<=N;i++)
   tab[i]=1; //zakladam, ze wszystkie liczby od 2 do N sa pierwsze
  for(i=2;i<=N;i++) //ta petla wraz z tym, co sie w niej zawiera to wlasciwy algorytm
   {
    if(tab[i])
     {
      printf("%d, ",i);
      j=2*i;
      while(j<=N)
       {
        tab[j]=0;
        j+=i;
       }
     }
   }
  getch();
 }
 
int fib2() //N-ta liczba Fibonacciego
 {
  int N,i; //i - licznik; N - numer liczby w ciagu Fibonacciego, ktora program wyznaczy
  double fi; //fi - fi, zlota proporcja, stosunek dwoch kolejnych wyrazow ciagu fibonacciego
  fi=(1+sqrt(5))/2; //wartosc fi
  printf("Wybrana zostala funkcja wyznaczajaca N-ta liczbe Fibonacciego\nPodaj N: ");
  scanf("%d",&N);
  if(N==1)
   printf("1   1"); //dla jedynki program sie myli :)
  else
   printf("%d   %.0f",N,1/sqrt(5)*(powi(fi,N)-powi(1/fi,N))); //wzor na N-ta liczbe Fibonacciego z uzyciem funkcji powi(x,y) z biblioteki math gdzie x - podstawa potegi, y - wykladnik potegi; x jest float a y calkowite
  getch();
 }

int fib1() //obliczanie N poczatkowych liczb Fibonacciego
 {
  int i,N,a=1,b=0,pom; //zmienne a,b - liczace; zmienna pom - zmienna pomocnicza przy zamianie wartosci a i b; N - zmienna okreslajaca ilosc wyznaczonych liczb; i - licznik
  printf("Wybrana zostala funkcja wyznaczajaca N poczatkowych liczb Fibonacciego.\nPodaj N: ");
  scanf("%d",&N);
  printf("i    F(i)\n");
  for(i=1;i<=N;i++)
   {
    printf("%d",i);
    gotoxy(6,i+3);
    printf("%d\n",a);
    pom=a;   //obliczenie kolejnej
    a=b+a;   //liczby
    b=pom;   //Fibonacciego
   }
  getch();
 }

int main()
 {
  short ver;
  do
   {
    clrscr(); //wyczyszczenie ekranu
    printf("Wybierz wersje:\n 1.Drugie minimum\n 2.N pierwszych liczb Fibonacciego\n 3.N-ta liczba Fibonacciego\n 4.Sortowanie babelkowe\n 5.Wyznaczanie wszystkich liczb pierwszych od 1 do N (Sito Eratostenesa)\n 0.Wyjscie\n");
    gotoxy(17,1);
    scanf("%d",&ver); //wybor zadania
    clrscr();
    switch(ver) //realizacja zadania
     {
      case 1:
       min2();
       break;
      case 2:
       {
        fib1();
        break;
       }
      case 3:
       fib2();
       break;
      case 4:
       babel();
       break;
      case 5:
       lpier();
       break;
      case 0:
       {
        return(0);
        break;
       }
     }
   }
  while(ver!=0); //program wykonuje sie dopoki go nie zamkniemy (ver==0)
 }








#include <stdio.h>

int main()
 {
  int wyniki[11],min,i,j,zmiennapomocnicza,tablica[11];
  printf("Podaj 10 liczb: ");
  for (i=1;i<=10;i++)
   scanf("%d",&tablica[i]);
  for (i=1;i<=10;i++)
   {
    min=tablica[1];
    tablica[1]=32000;
    for (j=2;j<=10;j++)
     if (tablica[j]<min)
      {
       zmiennapomocnicza=tablica[j];
       tablica[j]=min;
       min=zmiennapomocnicza;
      }
    wyniki[i]=min;
   }
  for (i=1;i<=10;i++)
   printf("%d ",wyniki[i]);

  return(0); //bo funkcja main powinna zwracac zero
 }



Pierwszy program to zlepek kilku funkcji - każdą można analizować oddzielnie. Problem ciągu Fibonacciego został tam rozwiązany za pomocą zwartego wzoru Bineta oraz iteracji. Rozwiązanie WGS to rozwiązanie rekurencyjne (znaczy się: funkcja wywołuje samą siebie - tak na wszelki wypadek przypominam). Drugi programik sortuje tablicę wyszukując aktualnie najmniejszy jej element. Gdyby coś nie działało to proszę o sygnał, poprawię.

Edit: Wcięcia są :) Dziekuję za podpowiedź.


Post został pochwalony 0 razy

Ostatnio zmieniony przez Tymbark dnia Śro 9:34, 29 Lis 2006, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
michelin




Dołączył: 10 Lis 2006
Posty: 25
Przeczytał: 0 tematów

Skąd: Żagań / Kraków MS-AGH

PostWysłany: Śro 1:12, 29 Lis 2006    Temat postu:

Dałbyś to w <code> to by były wcięcia chyba.

Mieliście już C wśredniej czy korzystacie z jakiegoś dobrego kursu. Jakoś mi to C nie podchodzi w ogóle;/


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Tymbark




Dołączył: 12 Lis 2006
Posty: 17
Przeczytał: 0 tematów

Skąd: Cormanthor (Sosny)

PostWysłany: Śro 9:37, 29 Lis 2006    Temat postu:

Ja miałem w liceum Pascala i Delphi (rozszerzona informatyka z dobrym nauczycielem). W C/C++ przed studiami napisałem jeden program, w którym nawet nie było pętli. Podręcznika nie mam żadnego niestety, więc nie mogę polecić...

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
margo




Dołączył: 10 Lis 2006
Posty: 179
Przeczytał: 0 tematów

Skąd: Wola Mędrzechowska

PostWysłany: Śro 13:13, 29 Lis 2006    Temat postu:

Też w LO miałam zestaw Pascal + Delphi (quasirozszerzona informatyka z quasidobrym nauczycielem Wink). Ale ostatnio obczaiłam dobrą książkę do C. /tzn. jak z tego się nie nauczysz to się nie nauczysz/ Książka jest z serii "* dla iditów" /w tym przypadku "Informatyka dla idiotów" Very Happy /. Totale podstawy, napisana po ludzku, ma dużo przykładów i nawet jak nigdy nie miałeś doczynienia z programowaniem to po tym istnieje niezerowe prawdopodobieństwo że się nauczysz. Wink

Roman Konieczny, "Wprowadzenie do programowania w języku C", INTERSOFTLAND, W-wa 1993.

Książka jest dostępna w bibliotece AGH. Wiem, że może jest trochu stara, ale fajna. I ma ekstra dyskietkę na końcu:P


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
lukaswax




Dołączył: 13 Lis 2006
Posty: 43
Przeczytał: 0 tematów

Skąd: Podhale rulez:)

PostWysłany: Śro 19:50, 29 Lis 2006    Temat postu:

Ja mialem w LO infe NIBY ROZSZERZONA ale babka byla bardziej tepa od kumpli z klasy ktorzy ja zaginali prawie na wszystkm... poza tym mialem pascala. polecilbym ksiazke "thinking in C++" - tyle ze jest ona dosc droga...

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
WGS
Admin



Dołączył: 09 Lis 2006
Posty: 71
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Śro 22:08, 29 Lis 2006    Temat postu:


lukaswax napisał:
polecilbym ksiazke "thinking in C++" -


Jak C++ to tylko "Symfonia C++" Grębosza! Napisane po ludzku, ładnie powyjaśniane. Czego więcej chcieć Smile

Co do programowania w C ... Podrzucono mi książeczkę A.Zalewskiego "Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++" ... Tylko to taka duża biblia ... ale fragmenty można przecież czytać Smile


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Ziembol
Admin



Dołączył: 09 Lis 2006
Posty: 31
Przeczytał: 0 tematów

Skąd: Jaworzno

PostWysłany: Czw 0:04, 30 Lis 2006    Temat postu:

O co ja tutaj widze Pan Wyhakiewicz i jego słynny 33 funkcyjny kalkulator
No piękinie


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
WGS
Admin



Dołączył: 09 Lis 2006
Posty: 71
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Czw 18:01, 30 Lis 2006    Temat postu:


Ziembol napisał:
O co ja tutaj widze Pan Wyhakiewicz i jego słynny 33 funkcyjny kalkulator
No piękinie


Cicho ... Wink teraz pisze obliczanie pochodnych i to głupie zadanie na całą stronę z ostatniej infy ... Razz


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Dziecie




Dołączył: 10 Lis 2006
Posty: 12
Przeczytał: 0 tematów

Skąd: Żyraków k/Dębicy // Kraków: Skłodowskiej-Curie

PostWysłany: Śro 1:07, 06 Gru 2006    Temat postu:

Baza Danych Plus zapis do plików (niestety bez zapisu do plików binarnych):

Czyli to co było 29 listopada w 7 punktach rozpisane (zrobione bez 7c i 7d)



Kod:
#include<stdio.h>

int pierdolnik=0;
int wybor;
int ster=0;
char nazwa[32];
char czysta_tabl[32];

struct student
{
       char imie[20];
       char nazwisko[30];
       int rok;
       int album;
} osoba[10];

void wczytaj(int *wsk_wczyt)
{
     if (*wsk_wczyt==10)
     {
        printf("baza pelna");
     return;
     }
     printf("Podaj Imie\t");
                  scanf("%s", osoba[*wsk_wczyt].imie);
                  printf("Podaj nazwisko\t");
                  scanf("%s", osoba[*wsk_wczyt].nazwisko);
                  printf("Podaj Rok\t");
                  scanf("%d", &osoba[*wsk_wczyt].rok);
                  printf("Podaj numer Albumu\t");
                  scanf("%d", &osoba[*wsk_wczyt].album);
                  *wsk_wczyt=*wsk_wczyt+1;
                  return;
};

void wypisz(int *wsk_decyz)
{
                  if (osoba[*wsk_decyz].rok==0)
                  {
                     printf("brak wpisu");
                     return;
                     }
                  printf("Nazwisko: %s\nImie: %s\nRok: %d\nNo. Albumu: %d", osoba[*wsk_decyz].nazwisko, \
                  osoba[*wsk_decyz].imie, osoba[*wsk_decyz].rok, osoba[*wsk_decyz].album);
                  return;
}

void zapisz_tekst(char sciezk[45],int *liczb)
{

     FILE *plik=fopen(sciezk, "wt");
     if (osoba[*liczb].rok==0)
     return;
     fprintf(plik, "Nazwisko: %s\nImie: %s\nRok: %d\nNo. Albumu: %d\n", osoba[*liczb].nazwisko,\
      osoba[*liczb].imie, osoba[*liczb].rok, osoba[*liczb].album);
     fclose(plik);
     return;
};

void odczyt_tekst(char sciezk[45],int *wybr)
{
     FILE *plik=fopen(sciezk, "rt");
     
     if(plik)
     {
             fscanf(plik, "Nazwisko: %s\nImie: %s\nRok: %d\nNo. Albumu: %d\n", osoba[*wybr].nazwisko,\
             osoba[*wybr].imie, &osoba[*wybr].rok, &osoba[*wybr].album);
             return;
             };
             printf("blad dostepu do pliku");
             return;
}

int main()
{
     for(wybor=0;wybor<10;wybor++)
     osoba[wybor].rok=0;
do
{
     printf("\n1) Pisanie rekordu\n2) Odczyt\n3) zapis do pliku\n4) odczyt z pliku\n5) koniec Programu\t");
     scanf("%d", &pierdolnik);
     char sciezka[45]="c:\\";

      switch (pierdolnik)
      {
             case 1:
                 wczytaj(&ster);
                  break;
             case 2:
                  printf("\nktory rekord?\t");
                  scanf("%d", &wybor);
                  wybor=wybor-1;
                  wypisz(&wybor);
                  break;
             case 3:

                  printf("ktory rekord?");
                  scanf("%d", &wybor);
                  printf("podaj nazwe (nie zapomnij o rozszerzeniu \'.txt\'!!)");
                  scanf("%s", nazwa);
                  strcat(sciezka,nazwa);
                  zapisz_tekst(sciezka, &wybor);
                  break;
             case 4:
                  printf("do ktorego rekordu wczytac?");
                  scanf("%d", &wybor);
                  printf("nazwa pliku:\t");
                  scanf("%s", nazwa);
                  strcat(sciezka,nazwa);
                  odczyt_tekst(sciezka, &wybor);
                  break;

      };
}
while (pierdolnik!=5);
return 0;
};


Przepraszam za nazwe pewnej zmiennej, nie chce mi się jej zmianiać.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Ziembol
Admin



Dołączył: 09 Lis 2006
Posty: 31
Przeczytał: 0 tematów

Skąd: Jaworzno

PostWysłany: Śro 20:54, 06 Gru 2006    Temat postu:

Tak zrobiłem program na dzisiejszym kolosie
Ma z dziesietnych na szesnastkowe liczyc przez funkcjie



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

#include<stdio.h>
#define b 5
//liczba bitów
//program ma zamieniac liczbe 10 na kod 16-stkowy



char funk(int n)
{

char tabl[b];
int i,d;
i=0;
d=n;
while(i<b) {
tabl[i]=d%16;
d=d/16;
i++;
}

for(i=b-1;i>=0;i--) {
switch(tabl[i]) {
case 10: printf("A"); break;
case 11: printf("B"); break;
case 12: printf("C"); break;
case 13: printf("D"); break;
case 14: printf("E"); break;
case 15: printf("F"); break;
default: printf("%d",tabl[i]);
}
}
}

main() {
int n;

printf("liczba bitow to: %d\n",b);
printf("podaj liczbe w systemie dziesietnym\n");
scanf("%d",&n);

printf("%c",funk(n));

getch();

}


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

i tak bedzie pała Sad


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Marcos




Dołączył: 12 Lis 2006
Posty: 20
Przeczytał: 0 tematów


PostWysłany: Nie 0:14, 10 Gru 2006    Temat postu:

Co do ostatniego zadania z informy dotyczacego towarow....moze mi ktos powie dlaczego po wpisaniu drugiej danej program wylacza sie....w ogole to dobrze jest mniej wiecej??? Wielkie dzieki za odpowiedz:


#include <stdio.h>
#include <conio.h>


void main()

{
struct towar
{
char nazwa[20];
char miara[10];
float netto;
float vat;
int ilosc;
float brutto1;
float netto1;
float brutto2;
float netto2;

}a[10];

int i;



for(i=0;i<10;++i)
{
clrscr();
printf ("Podaj parametry:\n\n1 - Nazwa %d. towaru: ",i+1);
gets(a[i].nazwa);

printf ("\n2 - Miara (jednostka): ");
gets(a[i].miara);

printf ("\n3 - Cena netto: ");
scanf ("%f", &a[i].netto);

printf ("\n4 - VAT (%): ");
scanf ("%lf", &a[i].vat);

printf ("\n5 - Ilosc: ");
scanf ("%d", &a[i].ilosc);
}

for(i=0;i<10;++i)
{
a[i].brutto1 = (a[i].netto*((a[i].vat*0.01)+1.0));
a[i].brutto2= (a[i].brutto1*a[i].ilosc);
a[i].netto2= (a[i].netto*a[i].ilosc);
}

clrscr();
for(i=0;i<10;++i)
{
printf ("\nNazwa towaru: %s", a[i].nazwa);
printf ("\nMiara: %s", a[i].miara);
printf ("\nIlosc: %d", a[i].ilosc);
printf ("\nCena netto: %.4f PLN", a[i].netto);
printf ("\nCena netto razem: %.4f PLN",a[i].netto2);
printf ("\nVAT: %.2f PLN", a[i].vat*0.01);
printf ("\nCena brutto: %.4f PLN", a[i].brutto1);
printf ("\nCena brutto razem: %.4f PLN\n", a[i].brutto2);
}
getch();
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Tymbark




Dołączył: 12 Lis 2006
Posty: 17
Przeczytał: 0 tematów

Skąd: Cormanthor (Sosny)

PostWysłany: Nie 17:19, 10 Gru 2006    Temat postu:

U mnie się nie wyłączył Smile Ale używam innego kompilatora więc może dlatego. W każdym razie i tak nie działał do końca poprawnie bo w każdym kolejnym przebiegu poza pierwszym nie wczytywał nazwy towaru a od razu przeskakiwał dalej. Gryzie się tutaj gets ze scanfem. Czemu używasz obu na raz? Moim zdaniem lepiej byłoby pozostać wszędzie przy scanfie. Czyli zamist gets(a[i].nazwa) będzie scanf("%s",&a[i].nazwa) i analogicznie przy mierze. Czy dobrze liczy już nie sprawdzałem, ale pewnie tak Smile

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Gość







PostWysłany: Czw 18:43, 11 Sty 2007    Temat postu:

Możecie wrzucić kody ostatnich programów co robiliśmy. Chodzi mi tu głównie o kostkę(jeżeli komuś się udało) i o ten program co zapisuje liczby do pliku i wyłącza sie gdy wciśniemy 0.

THX. Jeśli nie uda mi się zrozumieć c do środy to może chociaż zapamiętam coś z tych kodów Very Happy
Powrót do góry
michelin




Dołączył: 10 Lis 2006
Posty: 25
Przeczytał: 0 tematów

Skąd: Żagań / Kraków MS-AGH

PostWysłany: Pią 1:32, 12 Sty 2007    Temat postu:

Ten post powyżej to ja napisałem. Nie zauważyłem że mi cookies skasowało. Embarassed

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Dziecie




Dołączył: 10 Lis 2006
Posty: 12
Przeczytał: 0 tematów

Skąd: Żyraków k/Dębicy // Kraków: Skłodowskiej-Curie

PostWysłany: Czw 14:38, 25 Sty 2007    Temat postu:

Kostka:

Kod:
#include<math.h>
#include<conio.h>
#include<iostream>
#define ESC 27
using namespace std;
void kostka (int oczka)
{
     cout << " ----- " << endl;
     for (int i=1;i<=9;i++)
     {
         switch (i)
         {
                case 1:
                case 4:
                case 7: cout <<"| ";
                }
         switch (i)
         {
                case 1:
                case 9:
                     if (oczka >1)
                     cout <<"O";
                     else
                     cout << " ";
                break;
                case 2:
                case 8:
                     cout <<" ";
                     break;
                case 3:
                case 7:
                     if (oczka > 3)
                     cout << "O";
                     else
                     cout << " ";
                     break;
                case 5:
                     if (oczka%2)
                     cout << "O";
                     else
                     cout << " ";
                     break;
                case 4:
                case 6:
                     if (oczka == 6)
                     cout <<"O";
                     else
                     cout << " ";
                     break;
                     }
                     
         switch (i)   
     {
         case 3:
         case 6:
         case 9:
              cout << " |" << endl;
              }
              }
              cout << " ----- " << endl;
}
main ()
{ int liczba;
 char znak;
 cout << "Esc konczy porogram" << endl;
 while ((znak=getch() )!= ESC)
  { //system ("cls");
    liczba=(int) round (rand ()%6)+1;
    kostka(liczba);
    cout << endl;
}
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum AUTOMATYKA I ROBOTYKA, GR. 22 Strona Główna -> Informatyka Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
deoxBlue v1.0 // Theme created by Sopel stylerbb.net & programosy.pl

Regulamin