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

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

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

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

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

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

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

Саставити на језику C програм за преписивање текста са главног улаза на главни излаз уз претварање првог слова сваке реченице у велико слово и свих осталих слова у мала слова. Реченица се завршава тачком која није иза цифре, упитником или ускличником. Текст се завршава сигналом за крај датотеке.


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


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

#include <stdio.h>
#define N 10
main () {
  int a[N][N], m, n, i, j, k, 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++)
      for (i=0; i<m-1; i++)
        for (k=i+1; k<m; k++)
          if (a[k][j] > a[i][j]) {
            b = a[i][j];
            a[i][j] = a[k][j];
            a[k][j] = b;
          }
    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>
#include <math.h>
main {
  float *a, s; int n, i, j;
  while (1) {
    printf ("n? "); scanf ("%d", &n);
  if (n <= 0) break;
    a = malloc (n * sizeof(float));
    printf ("A? ");
    for (i=0; i<n; scanf ("%f",&a[i++]));
    for (s=i=0; i<n; s+=a[i++]);
    s /= n;
    for (i=j=0; i<n; i++)
      if (fabs(a[i]-s) <= fabs(0.1*s))
        a[j++] = a[i];
    n = j;
    a = realloc (a, n*sizeof(float));
    prinf ("A= ");
    for (i=0; i<n; printf ("%.2f ", a[i++]));
    printf ("\n\n");
    free (a);
  }
}

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

#include <stdio.h>
#include <ctype.h>
main {
  int z, p = '\0', prvi=1;
  while ((z = getchar()) != EOF) {
    if (z=='.' && !isdigit(p) || z=='?' || z=='!') prvi = 1;
    else
      if (prvi)
        { z = toupper (z); prvi = 0; }
      else z = tolower (z);
    putchar (z);
    p = z;
  }
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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