C/Przykłady z komentarzem: Różnice pomiędzy wersjami

Z Wikibooks, biblioteki wolnych podręczników.
< C
Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
wydzielenie
 
Incuś (dyskusja | edycje)
→‎Losowe liczby zespolone: afair komentarze w C w stylu "//" są niezgodne z ansi.
Linia 24: Linia 24:
scanf("%d %d", &n, &m);
scanf("%d %d", &n, &m);


// jezeli byl blad w otwieraniu pliku i go nie otwarto,
/* jezeli byl blad w otwieraniu pliku i go nie otwarto,
// wówczas funkcja fclose(fp) wywołana na końcu programu zgłosi błąd
wówczas funkcja fclose(fp) wywołana na końcu programu zgłosi błąd
// wykonania i wysypie nam program z działania, stąd musimy umieścić
wykonania i wysypie nam program z działania, stąd musimy umieścić
// warunek, który w kontrolowany sposób zatrzyma program (funkcja exit;)
warunek, który w kontrolowany sposób zatrzyma program (funkcja exit;)
*/

if ( (fp = fopen(fileName, "w")) == NULL )
if ( (fp = fopen(fileName, "w")) == NULL )
{
{
puts("Otwarcie pliku nie jest mozliwe!");
puts("Otwarcie pliku nie jest mozliwe!");
exit; // jeśli w procedurze glownej
exit; /* jeśli w procedurze glownej
// to piszemy bez nawiasow
to piszemy bez nawiasow */
}
}


Linia 39: Linia 39:
fprintf(fp, "%d %d\n", n, m);
fprintf(fp, "%d %d\n", n, m);
// w pierwszym wierszu umieszczono wymiary macierzy
/* w pierwszym wierszu umieszczono wymiary macierzy */
srand( (unsigned int) time(0) );
srand( (unsigned int) time(0) );

Wersja z 16:40, 2 paź 2005

< Programowanie:C

Losowe liczby zespolone

Poniższy program generuje wiersz po wierszu macierz o określonych przez użytkownika wymiarach, zawierającą losowe liczby zespolone. Każdy wygenerowany wiersz macierzy zapisywany jest w pliku tekstowym o wprowadzonej przez użytkownika nazwie. W pierwszym wierszu pliku wynikowego zapisano wymiary utworzonej macierzy. Program napisany i skompilowany został w środowisku GNU/Linux.

#include <stdio.h>
#include <stdlib.h>  // dla funkcji rand() oraz srand()
#include <time.h>	// dla funkcji time()

main()
{
  int i, j, n, m;
  float re, im;
  FILE *fp;
  char fileName[128];

  printf("Wprowadz nazwe pliku wynikowego..\n");
  scanf("%s",&fileName);

  printf("Wprowadz po sobie liczbe wierszy i kolumn macierzy oddzielone spacją..\n");
  scanf("%d %d", &n, &m);

             /* jezeli byl blad w otwieraniu pliku i go nie otwarto,
              wówczas funkcja fclose(fp) wywołana na końcu programu zgłosi błąd
              wykonania i wysypie nam program z działania, stąd musimy umieścić
              warunek, który w kontrolowany sposób zatrzyma program (funkcja exit;)
             */
  if ( (fp = fopen(fileName, "w")) == NULL )  
  {
    puts("Otwarcie pliku nie jest mozliwe!");
    exit;    /*  jeśli w procedurze glownej
              to piszemy bez nawiasow */
  }

  else  { puts("Plik otwarty prawidłowo..");  }
  
  fprintf(fp, "%d %d\n", n, m);
            /* w pierwszym wierszu umieszczono wymiary macierzy */
  
  srand( (unsigned int) time(0) );
  for (i=1; i<=n; i++)
  {
    for (j=1; j<=m; j++)
    {
      re = ((rand() % 200)-100)/ 10.0;
      im = ((rand() % 200)-100)/ 10.0;

      fprintf(fp,"%.1f %.1f", re, im );

      if (j!=m) fprintf(fp,"    ");
    }
    fprintf(fp,"\n");
  }  


  fclose(fp);



  return 0;
}

< Programowanie:C