Podstawy Programowania C 02

Podobne dokumenty
Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

Język C zajęcia nr 5

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Część 4 pętla FOR. Instrukcja pętli iteracyjnej FOR. Postać pętli for jest następująca: a)dla jednej instrukcji wykonywanej przez pętlę.

do instrukcja while (wyrażenie);

I. Podstawy języka C powtórka

Zaawansowane algorytmy i struktury danych

LISTA 5. C++ PETLE for, while, do while

Programowanie komputerowe. Zajęcia 1

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Język C, instrukcje sterujące (laboratorium)

Proste programy w C++ zadania

Język C, tablice i funkcje (laboratorium, EE1-DI)

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

Rekurencja (rekursja)

Wstęp do Informatyki

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Algorytmy i struktury danych. Wykład 4

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Algorytm. a programowanie -

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Podstawy programowania funkcjonalnego

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

ALGORYTMY I STRUKTURY DANYCH

Podstawy Programowania C++

Język C, tablice i funkcje (laboratorium)

Laboratorium nr 1. i 2.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Konstrukcje warunkowe Pętle

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

Programowanie strukturalne i obiektowe. Funkcje

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

5 Przygotował: mgr inż. Maciej Lasota

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

Liczby całkowite i rzeczywiste

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

PROGRAMOWANIE W C++ ZADANIA

Przykładowe zadania z teorii liczb

5. Rekurencja. Przykłady

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Programowanie - wykład 4

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

Programowanie - instrukcje sterujące

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

WHILE (wyrażenie) instrukcja;

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie.

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

WHILE (wyrażenie) instrukcja;

Programowanie dynamiczne

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

INSTRUKCJE ITERACYJNE

Podstawy Programowania C 03

6. Pętle while. Przykłady

Złożoność obliczeniowa zadania, zestaw 2

WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Rekurencja. Przykład. Rozważmy ciąg

Poprawność semantyczna

EGZAMIN MATURALNY Z INFORMATYKI

Gimnazjum w Tęgoborzy - Algorytmika Strona 1 z 22 mgr Zofia Czech

Wstęp do informatyki- wykład 6

2 Przygotował: mgr inż. Maciej Lasota

Praca domowa nr 1. a a b a b ; b c. c a bc d ef gh. 2) Napisz kod sprawdzający poniższe warunki sformułowane w języku naturalnym:

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wstęp do programowania

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Metody numeryczne Laboratorium 2

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Politechnika Białostocka

1 Powtórzenie wiadomości

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Podstawy Programowania Podstawowa składnia języka C++

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Wprowadzenie do algorytmiki

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Matematyka dyskretna. Andrzej Łachwa, UJ, 2019 Zadania 1-100

2.8. Algorytmy, schematy, programy

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Kontrola przebiegu programu

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

TEORETYCZNE PODSTAWY INFORMATYKI

Spis treści JĘZYK C - PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI, REKURENCJA. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

Transkrypt:

Podstawy Programowania C 02 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 5 7 4 8 x y wx wy zmienna zmienna adres x adres y int x,y,pom; int wx, wy; x=5; y=7; printf("\nx=%d\ty=%d\n",x,y); wx=&x; wy=&y; printf("\n\twydruk przez adres\n"); printf("\nx=%d\ty=%d\n",wx,wy); printf("x?="); scanf("%d",wx); printf("y?="); scanf("%d",wy); printf("\nx=%d\ty=%d\n",x,y); printf("\n\twydruk przez adres\n"); printf("\nx=%d\ty=%d\n",wx,wy); printf("\n\tzamiana przez adres\n"); pom=wx; wx=wy; wy=pom; printf("\nx=%d\ty=%d\n",x,y); printf("\n\twydruk przez adres\n"); printf("\nx=%d\ty=%d\n",wx,wy); x=5 y=7 x=5 y=7 x?=9 y?=2 x=9 y=2 x=9 y=2 x=2 y=9 x=2 y=9 Wydruk przez adres Wydruk przez adres Zamiana przez adres Wydruk przez adres

//rysuje linię 10 gwiazdek int i; while(i<=10) { //rysuje linię x gwiazdek int i,x; printf("ile gwiazdek? :"); while(i<=x) { //rysuje przekątną z x gwiazdek int i,j,x; printf("ile gwiazdek? :"); while(i<=x) { j=1; while(j<i) { j++; printf("\n"); //rysuje pusty trójkąt prostokątny z x gwiazdek int i,j,x; printf("ile gwiazdek? :"); printf("\n"); while(i<=x) { j=1; while(j<i) { j++; printf("\n"); while(i<=x+2) { //rysuje odwrócony pusty trójkąt prostokątny z x gwiazdek int i,j,x; printf("ile gwiazdek? :"); j=x; while(j>=0) { j--; printf("\n"); while(i<=x) { j=x; while(j>=i) { j--; j=1; while(j<i) { j++;

printf("\n"); while(i<=x+2) { //oblicza sumę k liczb int i,k,suma,pom; printf("ile liczb? :"); scanf("%d",&k); suma=0; while(i<=k) { printf("podaj liczbe nr %d :",i); scanf("%d",&pom); suma+=pom; printf("\n\nsuma %d liczb wynosi %d",k,suma); //oblicza sumę liczb zakończonych znakiem int i,k,suma,pom; printf("podaj liczbe nr 1 :",i); i=2; suma=pom; while(k!=0) { printf("podaj liczbe nr %d :",i); if(k!=0) suma+=pom; i-=2; printf("\n\nsuma %d liczb wynosi %d",i,suma); //oblicza sumę liczb zakończonych znakiem! int i,k,suma,pom; char pp; pp='a'; printf("podaj liczbe nr 1 :",i); i=2; if(k==0) scanf("%c",&pp); suma=pom; while(pp!='!') { printf("podaj liczbe nr %d :",i); if(k!=0) { suma+=pom; else scanf("%c",&pp); i--; printf("\n\nsuma %d liczb wynosi %d",i,suma); //znajduje max z liczb zakończonych znakiem! int i,k,max,pom; char pp; pp='a'; printf("podaj liczbe nr 1 :",i); i=2; if(k==0) scanf("%c",&pp); max=pom; while(pp!='!') { if(k==0) printf("\n"); printf("podaj liczbe nr %d :",i); if(k!=0) { if(max<pom) max=pom; else scanf("%c",&pp);

i--; printf("\n\nmaximum z %d liczb wynosi %d",i,max); Zadanie 1. Algorytm Euklidesa służy do wyznaczania NWD dwóch liczb. Działa on w następujący sposób: Mamy 2 liczby a oraz b. Jeżeli a=b to NWD(a,b)=b, Jeżeli a b to NWD(a,b)=NWD(min(a,b), a-b ). Proszę zaimplementować powyższy algorytm. UWAGA: proszę nie używać rekurencji ale pętli while. Zadanie 2. Szybki Algorytm Euklidesa jest modyfikacją Algorytmu Euklidesa. Działa on w następujący sposób: Mamy 2 liczby a oraz b. Jeżeli b=0 to NWD(a,b)=a, Jeżeli b 0 to NWD(a,b)=NWD(b, (a mod b)) Proszę zaimplementować powyższy algorytm. UWAGA: proszę nie używać rekurencji ale pętli while. Zadanie 3. Algorytm rosyjskich wieśniaków służy do obliczania iloczynu dwóch liczb. Działa on w następujący sposób: Mamy 2 liczby a oraz b. Tworzymy dwie kolumny. Następnie w kolejnych wierszach wpisujemy : w pierwszym wierszu : w kolumnie a wartość a, w kolumnie b wartość b, w następnych wierszach: w kolumnie a część całkowitą uzyskaną z podzielenia liczby z poprzedniego wiersza przez 2, w kolumnie b liczbę uzyskaną z pomnożenia liczby z poprzedniego wiersza przez 2. Postępujemy tak dopóki liczba w kolumnie a jest większa od 1. Następnie sumujemy liczby z kolumny b, dla których ich odpowiedniki w kolumnie a są nieparzyste. a=11 b=6 11 6 5 12 2 24 1 48 6+12+48 66

//NWD - algorytm Euklidesa int x, y, p1, p2,p3; printf("podaj a :"); printf("podaj b :"); scanf("%d",&y); p1=x; p2=y; while(p2!=p1) { if(p1>p2) p1=p1-p2; else p2=p2-p1; printf("\n\nnwd(%d,%d)=%d",x,y,p1); //NWD - szybki algorytm Euklidesa int x, y, p1, p2,p3; printf("podaj a :"); printf("podaj b :"); scanf("%d",&y); p1=x; p2=y; while(p2!=0) { p3=p2; p2=p1%p2; p1=p3; printf("\n\nnwd(%d,%d)=%d",x,y,p1); //mnożenie - algorytm rosyjskich wieśniaków int x, y, p1, p2,p3; printf("podaj a :"); printf("podaj b :"); scanf("%d",&y); p1=x; p2=y; p3=0; while(p1!=1) { if(p1%2) p3+=p2; p1=p1/2; p2=2; p3+=p2; printf("\n\n%d%d=%d",x,y,p3); //mnożenie - algorytm rosyjskich wieśniaków //wersja wielokrotna int x, y, p1, p2,p3,stop; stop=1; while(stop!=0) { printf("\n\npodaj a :"); stop= if(stop!=0) { printf("podaj b :"); scanf("%d",&y); p1=x; p2=y; p3=0; while(p1!=1) { if(p1%2) p3+=p2; p1=p1/2; p2=2; p3+=p2; printf("\n\n%d%d=%d",x,y,p3); system("cls"); else getchar(); system("cls"); printf("\n\nk O N I E C");

Zadanie 1. Proszę napisać program, który 1.wczyta z klawiatury liczbę linii 2.wydrukuje obrazek: Zadanie 2. Proszę napisać program, który 1.wczyta z klawiatury: a)liczbę elementów w 1 wierszu b)liczbę wierszy c)różnicę pomiędzy ilością elementów pomiędzy kolejnymi wierszami 2.policzy sumę elementów tak zdefiniowanej struktury danych, wczytywanych z klawiatury Przykład 1: Liczba elementów w 1 wierszu: 3 liczba wierszy: 5 różnica: 2 Wygląd danych 5, 7, 3 8, 6, 4, 5, 9 13,21, 2, 5, 6, 8, 7 Suma=109 Przykład 2: Liczba elementów w 1 wierszu: 7 liczba wierszy: 5 różnica: -2 Wygląd danych 13,21, 2, 5, 6, 8, 7 8, 6, 4, 5, 9 5, 7, 3 Suma=109

Zadanie 3. Rekurencyjna definicja ciągu Fibonacciego ma postać: a 0 =1 a 1 =1 a n =a n-1 +a n-2 Proszę napisać program obliczjący iteracyjnie n-ty wyraz ciągu Fibonacciego. Zadanie 4. Proszę napisać program, który wczyta z klawiatury podzielniki a 1 i a 2 oraz liczby x 1 i x 2, a następnie wczyta dane z klawiatury. Wczytywanie kończy się gdy liczba danych podzielnych przez a 1 jest równa x 1 lub liczba danych podzielna przez a 2 jest równa x 2. Program ma wyliczyć i wydrukować różnicę sumy wszystkich danych pomniejszoną o iloczyn danych podzielnych przez a 1 i podwojoną sumę danych podzielnych przez a 2. Zadanie 5. Proszę napisać program, który 1.wczyta z klawiatury liczbę linii 2.liczbę gałęzi 3.wydrukuje obrazek dla 3 linii i 4 gałęzi: Zadanie 6. Rekurencyjna definicja ciągu ma postać: a 0 =1 a 1 =1 a 2 =2 a n =2a n-1 +3a n-2 +a n-3 - n dla n>2 Proszę napisać program obliczjący iteracyjnie n-ty wyraz tego ciągu. Zadanie 7. Proszę napisać program, który wykonuje operację szybkiego potęgowania na dwóch liczbach całkowitych (modyfikacja algorytmu rosyjskich wieśniaków ).