Forum www.automatycy.fora.pl Strona Główna

www.automatycy.fora.pl
WIMiR automatyka i robotyka
 

wyklad 12 listopad 2007 - programy

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.automatycy.fora.pl Strona Główna -> informatyka
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
automatyk
Administrator



Dołączył: 06 Paź 2007
Posty: 148
Przeczytał: 0 tematów

Pomógł: 3 razy
Ostrzeżeń: 0/5

PostWysłany: Wto 15:30, 13 Lis 2007    Temat postu: wyklad 12 listopad 2007 - programy

ponizej daje programy, ktore na ostatnim wykladzie dostalismy a ktore bedziemy robic na najblizszych cwiczeniach

kody(programy) nie zawieraja komentarzy

program 1:


Kod:
#include <stdio.h>
#include <stdlib.h>
main (int argc, char *argv [])
{
int i, n;
unsigned long silnia;
printf ("\n=== Obliczanie n! ===");
n=atoi(argv[1]);
silnia=1;
if (n>1) {
  for (i=1; i<=n; i++)
    { silnia=silnia*i;
      printf ("\n Dla i = %3d n! = %121d",i,silnia);
    }
  }
return (0);
}


program 2:


Kod:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main (int argc, char *argv[])
{
float a,b,c,delta,x1,x2;
a=atof(argv[1]);
b=atof(argv[2]);
c=atof(argv[3]);
printf("\n===== Rownanie kwadratowe =====");
printf("\na = %10.2f b = %10.2f c = %10.2f",a,b,c);
  if (a!=0) {
  delta=b*b-4.0*a*c;
  if (delta >=0){
    x1=(-b-sqrt(delta))/2/a;
    x2=(-b+sqrt(delta))/2/a;
    printf("\ndelta = %10.2f",delta);
    printf("\nx1=%10.2f x2=%10.2f",x1,x2);
   }
  else printf("\ndelta ujemna = %10.2f - rownanie kwadratowe nie ma rozw. rzeczywistych",delta);
  } // if (a!=0)
return (0);
}


program 3:


Kod:
#include <stdio.h>
#include <math.h>
main ()
{
float a,b,c,delta,x1,x2;
int znak,licznik;
FILE *wejscie, *wyjscie;

wejscie=fopen("3.dat","r");
wyjscie=fopen("3.out","r");

licznik=0;
while (!feof(wejscie))
  {
  fscanf(wejscie,"%f %f %f",&a,&b,&c);
  licznik++;
  fprintf(wyjscie,"\n===== Rownanie kwadratowe ===== %3d",licznik);
  fprintf(wyjscie,"\na = %10.2f b = %10.2f c = %10.2f",a,b,c);
  if (a!=0) {
  delta=b*b-4.0*a*c;
  if (delta >=0){
    x1=(-b-sqrt(delta))/2/a;
    x2=(-b+sqrt(delta))/2/a;
    fprintf(wyjscie,"\ndelta = %10.2f",delta);
    fprintf(wyjscie,"\nx1=%10.2f x2=%10.2f",x1,x2);
   }
  else fprintf(wyjscie,"\ndelta ujemna = %10.2f - rownanie kwadratowe nie ma rozw. rzeczywistych",delta);
  fprintf (wyjscie,"\n\n");
  } // if (a!=0)
 }
fclose(wejscie); fclose(wyjscie);
return (0);
}


program 4:


Kod:
#include <stdio.h>
main()
{
int i,n,max;
int x[20];
FILE *wejscie;

wejscie=fopen("dane","r");
fscanf(wejscie,"%d",&n);
  printf("\n === Dane === n = %5d\n",n);
  for(i=0; i<n; i++) fscanf(wejscie,"%d",&x[i]);
fclose(wejscie);

for(i=0; i<n; i++) printf("%5d",x[i]);
max=x[0];

for(i=1; i<n; i++) if (x[i]>max) max=x[i];
printf("\n-----najwieksza liczba = %5d-----\n",max);

return(0);
}


program 5:


Kod:
#include <stdio.h>
main()
{
int i,n,min;
int x[20];
FILE *wejscie;

wejscie=fopen("dane","r");
fscanf(wejscie,"%d",&n);
  printf("\n === Dane === n = %5d\n",n);
  for(i=0; i<n; i++) fscanf(wejscie,"%d",&x[i]);
fclose(wejscie);

for(i=0; i<n; i++) printf("%5d",x[i]);
min=x[0];

for(i=1; i<n; i++) if (x[i]<min) min=x[i];
printf("\n-----najmniejsza liczba = %5d-----\n",min);

return(0);
}


program 6:


Kod:
#include <stdio.h>
main()
{
int i,n,licznik_zmian,xx;
int x[20];
FILE *wejscie;
wejscie=fopen("dane","r");
  fscanf(wejscie,"%d",&n);
  printf("\n=== Dane === n = %5d\n",n);
  for(i=0; i<n; i++) fscanf(wejscie,"%d",&x[i]);
fclose(wejscie);
for(i=0; i<n; i++) printf("%5d\n",x[i]);

do {
  licznik_zmian=0;
  for(i=1; i<n; i++)
    if(x[i]>x[i-1])
      { xx=x[i]; x[i]=x[i-1]; x[i-1]=xx; licznik_zmian++; }
} while(licznik_zmian!=0);

printf("ciag posortowany malejaco:\n");
for(i=0; i<n; i++) printf("%5d\n",x[i]);

do {
  licznik_zmian=0;
  for(i=1; i<n; i++)
    if(x[i]<x[i-1]
      { xx=x[i]; x[i]=x[i-1]; x[i-1]=xx; licznik_zmian++; }
} while(licznik_zmian!=0);

printf("ciag posortowany rosnaco:\n");
for(i=0; i<n; i++) printf("%5d\n",x[i]);

return (0);
}


Post został pochwalony 3 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.automatycy.fora.pl Strona Główna -> informatyka Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
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
deox v1.2 // Theme created by Sopel & Download

Regulamin