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

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

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

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

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

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

Поставка задатка 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 (i=0; i<m; i++)
      for (j=0; j<n-1; j++)
        for (k=j+1; k<n; k++)
          if (a[i][k] < a[i][j]) {
            b = a[i][j];
            a[i][j] = a[i][k];
            a[i][k] = 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>
main {
  float *a, *b; int m, n, i, j, k;
  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++]));
    for (i=j=0; i<m; i++) {
      for (k=0; k<n && b[k]!=a[i]; k++);
      if (k == n) a[j++] = a[i];
    }
    m = j;
    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, prvi = 1;
  while ((z = getchar()) != EOF) {
    if (isspace(z)) prvi = 1;
    else
      if (prvi)
        { z = toupper (z); prvi = 0; }
      else z = tolower (z);
    puchar (z);
  }
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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