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

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

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

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

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

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

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

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

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


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

#include <stdio.h>
main () {
  int n, i;
  double x, f, a, b, 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=b=1, i=1; i<=n; i++) {
      a  = - a * x;
      b += (double) i / (i + 1);
      f += i * a / b;
    }
    printf ("%12.2f%12.2f\n", x, f);
  }
}

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

#include <stdio.h>
#include <ctype.h>
main () {
  int zn, br_slo=0, br_rec=0, prvi=1;
  while ((zn = getchar()) != EOF)
    if (isalpha (zn)) {
      br_slo++;
      if (prvi) { br_rec++; prvi = 0; }
    } else prvi = 1;
  printf ("Srednja duzina reci: %.2f\n",
    br_rec ? (double)br_slo/br_rec : 0);
}

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

#include <stdio.h>
#include <stdlib.h>
main () {
  while (1) {
    int *a, n, k, *b, i;
    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++]);
    printf ("k? "); scanf ("%d", &k);
    b = calloc (k, sizeof (int));
    for (i=0; i<n; b[a[i++]%k]++);
    printf ("B=");
    for (i=0; i<k; printf(" %d", b[i++]);
    putchar ('\n');
    free (a); free (b);
  }
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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