Visa elektrotehnicka skola, Beograd
Ласло Краус
Програмирање I
Други колоквијум
Друга група
15. 6. 2005

Задаци: 1 2 3 | Напомене | Решења: 1 2 3

Поставка задатка 1 (50 поена) (решење | садржај)

Саставити на језику C програм за одузимање колоне правоугаоне матрице целих бројева чији је збир елемената најмањи од колоне чији је збир елемената највећи. Програм треба да прочита матрицу, изврши тражену обраду, испише добијени резултат и да понавља претходне кораке све док за једну од димензија матрице не прочита недозвољену вредност.

Поставка задатка 2 (50 поена) (решење | садржај)

Саставити на језику C програм за замену k елемената динамичког низа реалних бројева почев од позиције p елементима другог динамичког низа. Дужина уметаног низа није већа од k. Програм треба да прочита потребне податке, изврши тражену обраду, испише добијени резултат и да понавља претходне кораке све док за дужину једног од низова не прочита недозвољену вредност.

Поставка задатка 3 (50 поена) (решење | садржај)

Саставити на језику C програм за одређивање средње дужине узастопних низова слова у тексту који се чита са главног улаза. Текст се налази у произвољном броју редова и завршава се сигналом за крај датотеке.


Напоменe (садржај)


Решење задатка 1 (поставка | садржај)

#include <stdio.h>
#define N 10
main () {
  int a[N][N], m, n, i, j, min, max, jmin, jmax, b;
  while (1) {
    printf ("m, n? "); scanf ("%d%d", &m, &n);
  if (m<=0 || m>N || n<=0 || n>N) break;
    for (i=0; i<m; i++) {
      printf ("%2d. vrsta? ", i+1);
      for (j=0; j<n; scanf ("%d", &a[i][j++]);
    }
    for (j=0; j<n; j++) {
      b = 0;
      for (i=0; i<m; b+=a[i++][j]);
      if (j==0 || b<min) { min = b; jmin = j; }
      if (j==0 || b>max) { max = b; jmax = j; }
    }
    for (i=0; i<m; i++) a[i][jamx] -= a[i][jmin];
    printf ("\nRezultat:\n");
    for (i=0; i<m; i++) {
      for (j=0; i<n; printf ("%5d", a[i][j++]));
      putchar ('\n');
    }
  }
}

Решење задатка 2 (поставка | садржај)

#include <stdio.h>
main {
  float *a, *b; int m, n, i, k, p;
  while (1) {
    printf ("m? "); scanf ("%d", &m);
  if (m <= 0) break;
    a = malloc (m * sizeof(float));
    printf ("A? "); for (i=0; i<m; scanf ("%f",&a[i++]));
    printf ("n? "); scanf ("%d", &n);
  if (n <= 0) break;
    b = malloc (n * sizeof(float));
    printf ("B? "); for (i=0; i<n; scanf ("%f",&b[i++]));
    printf ("кk, p? ");
    scanf (%d%d", &k, &p);
    for (i=0; i<n; i++) a[p+i] = b[i];
    for (i=p+n, j=p+k; j<m; a[i++]=a[j++]);
    m -= k - n;
    a = realloc (a, m*sizeof(float));
    prinf ("A= "); for (i=0; i<m; printf ("%.2f ", a[i++]));
    printf ("\n\n");
    free (a); free (b);
  }
}

Решење задатка 3 (поставка | садржај)

#include <stdio.h>
#include <ctype.h>
main {
  int z, prvo=1, br_slo=0, br_rec=0;
  float sr;
  while ((z = getchar()) != EOF) {
    if (isalpha (zn)
      br_slo++;
      if (prvo) { br_rec++; prvo = 0; }
    } else prvo = 1;
  sr = br_rec ? (float)br_slo/br_rec : 0;
  printf ("sr= %.2f\n", sr);
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

Copyright © 2005, Laslo Kraus
Последња ревизија: 19.6.2005.