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

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

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

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

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

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

Podstawy programowania C. dr. Krystyna Łapin

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

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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

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

Wstęp do programowania

Język C - podstawowe informacje

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

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

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!

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

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

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

Argumenty wywołania programu, operacje na plikach

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

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

dr inż. Jarosław Forenc

Wstęp do programowania

Elementarne wiadomości o języku C

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

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

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

Zmienne, stałe i operatory

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

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

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

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

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

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

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

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

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

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

Tablicę 2-wymiarową można przedstawić jako pewien zestaw tablic 1-wymiarowych np.:

1 Podstawy c++ w pigułce.

Rozdział 4 KLASY, OBIEKTY, METODY

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

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

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

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

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

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

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

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

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Programowanie i techniki algorytmiczne

Wykład 1

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

np. dla p=1 mamy T1(N) N/2 średni czas chybionego wyszukiwania z prawdopodobieństwem q:

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Programowanie Obiektowe i C++

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1

Pytania sprawdzające wiedzę z programowania C++

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

PROGRAMOWANIE w C prolog

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

Programowanie strukturalne i obiektowe. Funkcje

Wstęp do programowania

Algorytm selekcji Hoare a. Łukasz Miemus

Programowanie komputerowe. Zajęcia 2

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

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

Podstawy programowania - 1

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

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

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

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

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

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

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Podstawy Programowania Algorytmy i programowanie

- - Ocena wykonaniu zad3. Brak zad3

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

5 Przygotował: mgr inż. Maciej Lasota

Język C, tablice i funkcje (laboratorium)

Wstęp do programowania

Część 4 życie programu

2 Przygotował: mgr inż. Maciej Lasota

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

( wykł. dr Marek Piasecki )

Co nie powinno być umieszczane w plikach nagłówkowych:

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

Język C zajęcia nr 5

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Podstawy Programowania.

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Transkrypt:

Proste algorytmy w języku C Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-10-17

Outline Język C i Matlab Zadanie pierwsze - obliczanie miejsc zerowych wielomianu Zadanie drugie - znajdywanie 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.

Matlab MATLAB program komputerowy będ acy interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich, oraz do tworzenia symulacji komputerowych. MATLAB stał się popularny w środowisku naukowo - technicznym. Składni Matlaba używa wiele innych, często darmowych programów takich jak GNU Octave.

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

Algorytm w formie blokowej: Był omawiany wcześniej na tablicy

Program w języku C Prosty program w języku C składa się z: informacji o użytych bibliotekach #include <stdio.h> #include <math.h> oraz z funkcji głównej void main(void) } między par a nawiasów i } powinno znaleźć się ciało funkcji

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 - 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.

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"); } }

A jak to wyglada w Matlabie: % ax2 + bx +c =0 delta=b^2-4*a*c if delta > 0 disp( Sa dwa miejsca zerowe: ); x1=(-b-sqrt(delta))/(2*a) x2=(-b+sqrt(delta))/(2*a) end if delta == 0 disp( jest jedno miejsce zerowe ); x0=-b/2*a end if delta < 0 disp( Nie ma miejsc zerowych ); end

jakie sa różnice? W tym przypadku niewielkie, ale w Matlabie nie trzeba deklarować zmiennych - po prostu wystarczy nadać im wartość poprzez przypisanie, np: moja_zmienna=5;

Znajdywanie 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); }

Implementacja algorytmu w Matlabie zbior=[1,4,6,2,7,22,23,33,33.2,12,14.8]; licznik=2; najw_el=zbior(1); while licznik<=11; if najw_el<zbior(licznik) najw_el=zbior(licznik); end licznik=licznik+1; end najw_el

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 znajdywania 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; //a bylo 0 i dlatego nie dzialalo 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);

Implementacja w Matlabie zbior=[1,4,6,2,7,22,23,33,33.2,12,14.8]; krok=1; while krok<11 end zbior [zm_pomocn,ind]=max(zbior(krok:end)) ind=krok+ind-1; zbior(ind)=zbior(krok); zbior(krok)=zm_pomocn; krok=krok+1;

Omawiane pojęcia: Deklaracja zmiennych, definicja zmiennych, instrukcja warunkowa, pętla, sortowanie