Powrót do listy plików
wczytaj_macierz.c
//oryginalny kod wczytujący macierze, na GPL by Piotr (earle) Kiebasiński
//modeyfikacje i dostosowanie do własnych potrzeb Łukasz (frogu) Proszek
#include "pivotgauss.h"
void
wczytaj_macierz (FILE * skad, typ *** gdzie, int *wierszy, int *kolumn)
{
int n_wier = 0; //ilosc kolumn
int n_kol = 0; //ilosc wierszy
char temp[ROZMIAR];
int flaga = 0;
int m = 0;
int i, j;
typ **gdzie_1; //wskaznik do wskaznika, gdzie wczytam macierz
////////////////////*Okreslenie wymiarow macierzy*////////////////////////
while ((fgets (temp, ROZMIAR, skad)) != NULL) {
n_wier++; //zwieksz liczbe wierszy
flaga = n_wier;
while ((temp[m] != '\n') && (flaga == USTAWIENIE_FLAGI)) {
if (isspace (temp[m]) && (m < ROZMIAR)) {
m++;
} //pominiecie znaku pustego, jak tak zaczynam macierz
if (((isdigit (temp[m])) || (temp[m] == '.')) //jesli to cyfra lub kropka
&& //i
(isspace (temp[m + 1])) //nastepny znak jest pusty
) {
n_kol++; //to zwieksz liczbe kolumn
}
m++;
}
}
///////////////////////////////////////////////////////////////////////////
*wierszy = n_wier; //ile wczytales wierszy
*kolumn = n_kol; //ile wczytales kolumn
printf ("\nWewnatrz funkcji : %d wierszy i %d kolumn", *wierszy, *kolumn);
/*przewiniecie strumienia na poczatek */
rewind (skad);
/*Pora na allokacje macierzy */
gdzie_1 = (typ **) calloc (n_wier,sizeof (typ));
for (i = 0; i < n_wier; i++) {
gdzie_1[i] = (typ *) calloc (n_kol,sizeof (typ));
}
////////////////////////////*wczytywanie macierzy*///////////////////////
for (i = 0; i < n_wier; i++) {
for (j = 0; j < n_kol; j++) {
fscanf (skad, "%lf", &gdzie_1[i][j]);
}
}
////////////////////////////////////////////////////////////////////////
/*kontrolne wypisanie*/
for(i=0; i<n_wier; i++)
{
printf("\n");
for(j=0; j<n_kol; j++)
{
printf("\t %f ", gdzie_1[i][j]);
}
}
//printf("\n\t teraz gdzie: %f", gdzie_1);
*gdzie = gdzie_1; //to bedzie zwrocone do podprogramu wywolujacego.
}
syntax highlighted by
Code2HTML, v. 0.9.1
kod przerobiony z HTML na XHTML za pomocą HTML Tidy for Linux/x86
Materiały z Metod Numerycznych udostępnione zostały na zasadach licencji GPL w wersji 2.