Info2/2008tavasz/kuka

A MathWikiből
(Változatok közti eltérés)
7. sor: 7. sor:
 
ld a gyakorlaton: ~/info2/mx.c
 
ld a gyakorlaton: ~/info2/mx.c
  
==== Típuskényszerítés (casting) ====
+
==== Mutató jelölés, típuskényszerítés (casting) ====
  
 
~/info2/mx2.c
 
~/info2/mx2.c
  
 +
#include <stdio.h>
 +
 +
#define SOROKSZ 10
 +
#define OSZLOPOKSZ 10
 +
 +
int legnagyobb(int *a, int oszsz, int ssz, int osz)
 +
{
 +
  int i, j;
 +
  int mx = *a;
 +
 
 +
  for( i = 0; i < ssz; i++)
 +
    for( j = 0; j < osz; j++)
 +
      if (  *(a + i*oszsz + j) > mx)
 +
        mx =  *(a + i*oszsz + j);
 +
  return mx;
 +
}
 +
 +
int main()
 +
{
 +
  int t[SOROKSZ][OSZLOPOKSZ] = { {21, 42, 13},
 +
                                  {35, 20, 15} };
 +
  int ssz = 2;
 +
  int osz = 3;
 +
  int m;
 +
 
 +
  m = legnagyobb( (int *)t, OSZLOPOKSZ, ssz, osz);
 +
 
 +
  printf("A legnagyobb érték %d.\n", m);
 +
  return 0;
 +
}
  
  

A lap 2008. március 14., 07:00-kori változata

Tartalomjegyzék

4. előadás (2008-03-14)

Tömbök átadása paraméterként

Index jelölés

ld a gyakorlaton: ~/info2/mx.c

Mutató jelölés, típuskényszerítés (casting)

~/info2/mx2.c

#include <stdio.h>

#define SOROKSZ 10
#define OSZLOPOKSZ 10

int legnagyobb(int *a, int oszsz, int ssz, int osz)
{
  int i, j;
  int mx = *a;
 
  for( i = 0; i < ssz; i++)
    for( j = 0; j < osz; j++)
      if (  *(a + i*oszsz + j) > mx)
        mx =  *(a + i*oszsz + j);
  return mx;
}

int main()
{
  int t[SOROKSZ][OSZLOPOKSZ] = { {21, 42, 13},
                                 {35, 20, 15} };
  int ssz = 2;
  int osz = 3;
  int m;
 
  m = legnagyobb( (int *)t, OSZLOPOKSZ, ssz, osz);
  
  printf("A legnagyobb érték %d.\n", m);
  return 0;
}


Véletlen sorozat generálása

Véletlen számok generálása: rand() az stdlib.h betöltése után egy [0,RAND_MAX] = [0,INT_MAX] intervallumba eső egészt generál. random seed: srand( <szám> ) hívással befolyásolható az elsőnek generált -- és ezzel az összes -- szám, mivel ez csak álvéletlen sorozat. Valódi véletlenség látszatához használjuk a time( NULL ) függvényt.

~/info2/rand.c

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main (void) {
  int i;

  srand( (unsigned int) time( NULL ));         // seed
  for (i=0; i<5; ++i) printf("%d ",rand()%64); // [0..RAND_MAX]
  printf("\n");

  return 0;
}

Struktúra

Struktúra átadása paraméterként

Személyes eszközök