Proste algorytmy w języku C

Podobne dokumenty
Proste algorytmy w języku C

Wstęp do Programowania, laboratorium 02

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania C. dr. Krystyna Łapin

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Języki i metodyka programowania. Wprowadzenie do języka C

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

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

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Praktyka Programowania

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

dr inż. Jarosław Forenc

Zmienne, stałe i operatory

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

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

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

Język C - podstawowe informacje

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Podstawy programowania skrót z wykładów:

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

1 Podstawy c++ w pigułce.

Argumenty wywołania programu, operacje na plikach

Język ludzki kod maszynowy

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE, ZAGNIEŻDŻANIE IF-ELSE.

1 Podstawy c++ w pigułce.

Microsoft IT Academy kurs programowania

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; a > b - a większe od b if (warunek) instrukcja1; a <= b - a mniejsze lub równe b

Podstawy Programowania. Wykład 1

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Programowanie strukturalne i obiektowe. Funkcje

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Wstęp do programowania

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Wstęp do programowania

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

5 Przygotował: mgr inż. Maciej Lasota

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

3. Instrukcje warunkowe

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

Pytania sprawdzające wiedzę z programowania C++

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

( wykł. dr Marek Piasecki )

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

2 Przygotował: mgr inż. Maciej Lasota

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy programowania w języku C

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński

Proces tworzenia programu:

Wstęp do Programowania 2

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Struktura pliku projektu Console Application

1. Wprowadzenie do C/C++

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

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Język C zajęcia nr 11. Funkcje

Język programowania PASCAL

Algorytmy i struktury danych. Wykład 4

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wykład 1

Wskaźniki. Informatyka

Podstawy Programowania.

Część 4 życie programu

1. Wprowadzenie do C/C++

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

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

4. Funkcje. Przykłady

Algorytm. a programowanie -

Elementarne wiadomości o języku C

I - Microsoft Visual Studio C++

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

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Język C, tablice i funkcje (laboratorium)

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Wstęp do programowania. Wykład 1

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Metodyki i techniki programowania

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Transkrypt:

Proste algorytmy w języku C Michał Rad AGH Laboratorium Maszyn Elektrycznych 2016-12-01

Outline Język C Zadanie pierwsze - obliczanie miejsc zerowych wielomianu Zadanie drugie - znajdowanie największego elementu Zadanie trzecie - sortowanie Do zapamiętania:

Język C Suche fakty: język C imperatywny, strukturalny język programowania wysokiego poziomu stworzony na poczatku lat siedemdziesiatych XX w. przez Dennisa Ritchiego do programowania systemów operacyjnych i innych zadań... Lektura: Brian W. Kernighan i Dennis Ritchie /Język ANSI C/.

Zadanie pierwsze: Oblicz miejsca zerowe wielomianu w postaci: ax 2 + bx + c = 0

Algorytm: Pobierz wartosci współczynników a b i c. Oblicz wyznacznik delta w/g wzoru: delta = b 2 4ac Jeśli delta<0 to poinformuj, że nie ma miejsc zerowych Jeśli delta=0 to jest jedno miejsce zerowe, dane wzorem: x0 = b/2a Jeśli delta>0 to sa dwa pierwiastki równania: x1 = b delta/2a x2 = b + delta/2a

Jaki powinien być algorytm? Powinien opisywać w sposób jednoznaczny, krok po kroku, kolejność postępowania które prowadzi do otrzymania pożadanego wyniku. Stopień szczegółowości powinien byc dostosowany do wybranego narzędzi (języka programowania) i może się nieco różnić w zwiazku z tym.

Co dalej? Dalej trzeba napisac program, wybierajac któryś z języków programowania. Zakładam, że wybieramy język C. Napisany program trzeba przetłumaczyć na język maszynowy, to znaczy taki, który rozumiany jest przez procesor danego komputera. Program, który tego dokonuje nazywany jest kompilatorem, a cały proces kompilacja. W wyniku kompilacji otrzymujemy plik wykonywalny (np **.exe w Windows)

Program w języku C Prosty program w języku C składa się z: informacji o dołaczanych bibliotekach (najczęściej korzystamy z uprzednio napisanych bibliotek) #include <stdio.h> #include <math.h> oraz z funkcji głównej między par a nawiasów i } powinien znaleźć się program

Program w języku C... W dowolnym miejscu w programie można (a potem okaże się że w wielu miejscach TRZEBA) wstawiać komentarze (to znaczy tekst który nie jest brany pod uwagę podczas kompilacji). Aby to zrobić mozna linijke zaczać od znaków // lub zawierajac komentarz między znakami /* oraz */ przykład: // komentarz do konca linii /* komentarz*/

Program w języku C... Więc powtórzmy: #include <stdio.h> //tu zalaczamy biblioteke stdio.h #include <math.h> // tu zalaczamy biblioteke math.h w // ktorej jest funkcja sqrt() void main(void) // to jest nazwa funkcji glownej //(zawsze taka sama - main ) // tutaj bedzie opisane to co robi program }

Program w języku C - deklaracja zmiennych Aby używać jakichkolwiek zmiennych należy wcześniej je zadeklarować określajac ich nazwę oraz typ: float a; int i; char c; Można to zrobić albo przed funkcja główna albo w niej samej. Zmienia to obszar gdzie zmienna jest widoczna (gdzie można jej używać)- albo w całym pliku - albo tylko w funkcji w której jest zadeklarowana.

Program w języku C - definicja zmiennych Deklarację zmiennych można połaczyć z nadaniem im wartości, np: float a=3.14; int i=2; char c= T ; Wtedy mówimy o definicji zmiennych. Podstawowe typy zmiennych: liczby zmiennoprzecinkowe: float, double; liczby całkowite int; znaki char;

Program w C - implementacja algorytmu #include <stdio.h> #include <math.h> float x1,x2,delta; float a,b,c; void main(void) printf("podaj a:\n"); scanf("%f",&a); printf("podaj b:\n"); scanf("%f",&b); printf("podaj c:\n"); scanf("%f",&c); delta=b*b - 4*a*c; printf("delta wynosi: %f\n",delta);

cd.. if(delta > 0) x1=(-b - sqrt(delta))/(2*a); x2=(-b + sqrt(delta))/(2*a); printf("sa dwa miejsca zerowe x1= %f x2=%f \n",x1,x2); } if(delta==0) x1=-b/(2*a); printf("jest jedno miejsce zerowe x0= %f \n",x1); } if(delta < 0) printf("nie ma miejsc zerowych"); } }

Komendy i operatory wykorzystane w programie Operator przypisania = oznacza nadanie nowej wartości zmiennej, która jest po jego lewej stronie. Instrukcja sterujaca if: if(warunek) // to zostanie wykonane jesli warunek okaze sie p } else // to zostanie wykonane jesli warunek jest falszem }; Operator porównania == Wynik takiego wyrażenia jest prawda gdy obie strony sa sobie równe.

Znajdowanie największego elementu w pewnym zbiorze Algorytm: Weź pierwszy element ze zbioru i uznaj (na razie), że jest to element największy, następnie weź drugi element i porównaj. jeśli drugi jest większy to uznaj, że teraz on jest największy powtarzaj te czynności aż do sprawdzenia wszystkich elementów w zbiorze

Implementacja algorytmu w C #include <stdio.h> float zbior[30]=1,4,6,2,7,22,23,33,33.2,12,14.8}; int licznik=1; float najw_el; void main(void) najw_el=zbior[0]; do if(najw_el < zbior[licznik]) najw_el=zbior[licznik]; } licznik++; }while(licznik<30); printf("najwiekszy element zbioru to: %4.2f\n",najw_el); }

Tablice W języku C do przechowywania wielu liczb (wielu wartości) można użyć tablicy. W ten sposób tutaj implementujemy zbiór. Tablica w języku C to zmienna, która ma miejsce na wpisanie wielu wartości (można sobie to wyobrazić jako tabelkę). Do elementów można odnosić się za pomoca indeksu, czyli kolejnego numeru miejsca w tablicy. Indeksy zaczynaja się od 0 (pierwszy element ma indeks o numerze 0).

Najprostszy algorytm sortowania Do sortowania można użyć wcześniej omówiony algorytm znajdowania maksimum (lub minimum). Wystarczy zauważyć, że sortowanie można sprowadzić do znajdowania największego (lub najmniejszego) elementu w grupie elementów jeszcze nie posortowanych.

Schemat blokowy?

Implementacja w C #include <stdio.h> float zbior[30]=1,4,6,2,7,22,23,33,33.2,12,14.8}; float najw_el; int maks(int poczatek) int indeks_elementu=poczatek; int licznik=poczatek+1; najw_el=zbior[poczatek]; do if(najw_el < zbior[licznik]) najw_el=zbior[licznik]; indeks_elementu=licznik; } licznik++; }while(licznik<11); return indeks_elementu; }

cd.. void main(void) int ind=0; float zm_pomocn; int krok=0; //ind=maks(1); //zm_pomocn=zbior[ind]; //zbior[ind]=zbior[0]; //zbior[0]=zm_pomocn; } do ind=maks(krok); zm_pomocn=zbior[ind]; zbior[ind]=zbior[krok]; zbior[krok]=zm_pomocn; printf("%4.2f ",zbior[krok]); krok++; }while(krok<11);

Omawiane pojęcia: Deklaracja zmiennych, definicja zmiennych, instrukcja warunkowa, pętla, sortowanie. Na egzaminie koniecznie trzeba umieć formułować i zapisywać algorytmy (tak jak to było na wykładzie, blokowo lub słowami)