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

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

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

Саставити на језику C програм који врши табелирање приложене функције на главном излазу рачунара за све вредности xminxxmax са кораком Δx уз упоређивање добијених вредности са вредношћу sin x (за свако x исписивати x, f(x), sin x и f(x) - sin x). Потребне податке читати преко главног улаза рачунара.

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

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

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

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


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


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

#include <stdio.h>
#include <math.h>
main () {
  int n, i;
  double x, f, a, xmin, xmax, dx;
  printf ("n? "); scanf ("%d", &n);
  printf ("xmin, xmax, dx? ");
  scanf ("%lf%lf%lf", &xmin, &xmax, &dx);
  printf ("\n     x      f(x)    sin(x)       eps\n"
            "====================================\n");
  for (x=xmin; x<=xmax; x+=dx) {
    for (f=a=x,i=1; i<=n; i++) {
      a = -a * x * x / (2*i) / (2*i+1);
      f  += a;
    }
    printf ("%6.2f10.6f10.6f10.2e\n", x, f, sin(x), f-sin(x));
  }
}

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

#include <stdio.h>
#include <ctype.h>
#define B 26
main () {
  int zn, br[B]={0}, i;
  while ((zn = getchar()) != EOF) {
    if (isupper (zn)) br[zn-'A']++;
    if (islower (zn)) br[zn-'a']++;
  }
  for (i=0; i<B; i++)
    if (br[i]) printf ("%c%5d\n", 'A'+i, br[i]);
}

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

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

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