This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dydaktyka:cprog:2016:conditionals-solutions [2016/10/13 10:15] pkleczek [Zadanie FOR-2] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Pętla "for", instrukcje warunkowe, operatory relacyjne i logiczne - rozwiązania i odpowiedzi ====== | ||
- | Laboratorium: [[dydaktyka:cprog:2015:conditionals|Pętla "for", instrukcje warunkowe, operatory relacyjne i logiczne]] | ||
- | |||
- | ===== Zadanie FOR-1 ===== | ||
- | |||
- | <code c for-1.c> | ||
- | /* Program oblicza sume liczb naturalnych 1,2,...,10. */ | ||
- | |||
- | #include <stdio.h> | ||
- | #include <stdlib.h> | ||
- | |||
- | int main() | ||
- | { | ||
- | int i = 0; | ||
- | int suma = 0; | ||
- | |||
- | for (i = 1; i <= 10; i = i + 1) { | ||
- | suma = suma + i; | ||
- | } | ||
- | | ||
- | printf("suma = %d\n", suma); | ||
- | |||
- | return 0; | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Zadanie FOR-2 ===== | ||
- | |||
- | |||
- | <code c for-2.c> | ||
- | /* Program oblicza sume liczb calkowitych z przedzialu <a,b>. */ | ||
- | |||
- | #include <stdio.h> | ||
- | #include <stdlib.h> | ||
- | |||
- | int main() | ||
- | { | ||
- | int a = 0; | ||
- | int b = 0; | ||
- | int suma = 0; | ||
- | |||
- | int i; | ||
- | |||
- | printf("Podaj liczby `a` i `b`: "); | ||
- | scanf("%d %d", &a, &b); | ||
- | |||
- | for (i = a; i <= b; i = i + 1) { | ||
- | suma = suma + i; | ||
- | } | ||
- | |||
- | printf("suma = %d\n", suma); | ||
- | |||
- | return 0; | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Zadanie 1 ===== | ||
- | |||
- | Uwagi: | ||
- | * W języku C operator ''^'' oznacza nie tyle potęgowanie, co operację [[https://pl.wikipedia.org/wiki/Alternatywa_wykluczaj%C4%85ca|XOR]] na bitach operandów :-) \\ Czyli nie piszemy ''delta = b ^ 2 + 4 * a * c'', tylko ''delta = b * b + 4 * a * c'' | ||
- | |||
- | <code c> | ||
- | #include <stdio.h> | ||
- | #include <stdlib.h> | ||
- | |||
- | int main() | ||
- | { | ||
- | double a, b, c; | ||
- | double delta; | ||
- | |||
- | printf("Podaj wspolczynniki a, b i c: "); | ||
- | scanf("%lf %lf %lf", &a, &b, &c); | ||
- | |||
- | delta = b * b - 4 * a * c; | ||
- | |||
- | printf("delta = %.4f : ", delta); | ||
- | |||
- | if (delta < 0) { | ||
- | printf("brak pierwiastkow"); | ||
- | } else if (delta == 0) { | ||
- | printf("jeden pierwiastek"); | ||
- | } else { | ||
- | printf("dwa pierwiastki"); | ||
- | } | ||
- | |||
- | printf("\n"); | ||
- | |||
- | return 0; | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Zadanie 2 ===== | ||
- | |||
- | <code c> | ||
- | #include <stdio.h> | ||
- | #include <stdlib.h> | ||
- | |||
- | int main() | ||
- | { | ||
- | int n; | ||
- | |||
- | printf("Podaj liczbe calkowita: "); | ||
- | scanf("%d", &n); | ||
- | |||
- | if (n % 2 == 0) { | ||
- | printf("Liczba %d jest parzysta.\n", n); | ||
- | } else { | ||
- | // reszta z dzielenia wynosi 1 | ||
- | printf("Liczba %d jest nieparzysta.\n", n); | ||
- | } | ||
- | |||
- | return 0; | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Zadanie 3 ===== | ||
- | |||
- | Krótkie przypomnienie z gimnazjum: [[http://www.math.edu.pl/czy-pierwsza|Jak rozpoznać czy liczba naturalna jest pierwsza?]] \\ | ||
- | (W poniższym programie nie bawię się w warunek $i < \sqrt{n}$, czyli równoważnie $i^2 < n$, tylko po prostu sprawdzam wszystkie liczby naturalne z przedziału $[2,n-1]$.) | ||
- | |||
- | <code c> | ||
- | #include <stdio.h> | ||
- | #include <stdlib.h> | ||
- | |||
- | int main() | ||
- | { | ||
- | int n; | ||
- | int i; | ||
- | |||
- | printf("Podaj liczbe calkowita: "); | ||
- | scanf("%d", &n); | ||
- | |||
- | for (i = 2; (i < n) && (n % i != 0); i = i + 1) | ||
- | ; /* po prostu sprawdz kolejna liczbe... */ | ||
- | |||
- | if (i == n) { | ||
- | // Cala petla zostala wykonana, wiec liczba N nie byla podzielna | ||
- | // przez zadna z liczb 2, 3, ..., N-1. | ||
- | printf("Liczba %d jest pierwsza.\n", n); | ||
- | } else { | ||
- | printf("Liczba %d NIE jest pierwsza.\n", n); | ||
- | } | ||
- | |||
- | return 0; | ||
- | } | ||
- | </code> |