Visa elektrotehnicka skola, Beograd
Ласло Краус
Програмирање II
Први колоквијум
8. 5. 2001

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

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

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

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

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

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

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

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


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

#include <stdio.h>
main () {
  int n, i;
  double x, f, a, b, xi, xmin, xmax, dx;
  printf ("n? "); scanf ("%d", &n);
  printf ("xmin, xmax, dx? ");
  scanf ("%lf%lf%lf", &xmin, &xmax, &dx);
  printf ("\n     x            f(x)\n"
          "========================\n");
  for (x=xmin; x<=xmax; x+=dx) {
    for (f=a=xi=i=1; i<=n; i++) {
      xi *= x;
      a   = - a;
      b   = 1 - i * xi;
    if (b == 0) break;
      f  += a * (i + xi) / b;
    }
    printf ("%12.2f", x);
    if (i > n)
      printf ("%12.2f\n", f);
    else
      printf ("    *****\n");
  }
}

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

#include <stdio.h>
#include <ctype.h>
#define D 30
main () {
  int zn, duz[D+1]={0}, d=0, i;
  while ((zn = getchar()) != EOF)
    if (! isspace (zn)) d++;
    else { duz[d]++; d=0; }
  duz[d]++;
  for (i=1; i<=D; i++)
    if (duz[i])
      printf ("%2d%5d\n", i, duz[i]);
}

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

#include <stdio.h>
#include <stdlib.h>
main () {
  while (1) {
    int *a, n, i, ј, k;
    printf ("\nn? "); scanf ("%d", &n);
  if (n < 0) break;
    a = malloc (n * sizeof (int));
    printf ("A? ");
    for (i=0; i<n; scanf("%d", &a[i++]);
    for (i=j=0; i<n; i++) {
      for (k=1; k*k<=abs(a[i]); k++);
      if (k*k!=abs(a[i])) a[j++] = a[i];
    }
    n = j;
    a = realloc (a, n * sizeof (int));
    printf ("A=");
    for (i=0; i<n; printf(" %d", a[i++]);
    putchar ('\n');
    free (a);
  }
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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