Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach



Podobne dokumenty
Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio

Informatyka I : Tworzenie projektu

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

I - Microsoft Visual Studio C++

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Liczby pseudolosowe. #include <stdio.h> #include <stdlib.h> int main() { printf("%d\n", RAND_MAX); return 0; }

Programowanie obiektowe

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Microsoft IT Academy kurs programowania

Instrukcja laboratoryjna cz.3

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Zaawansowane aplikacje internetowe - laboratorium

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Programowanie obiektowe zastosowanie języka Java SE

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

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005

Laboratorium 1 - Programowanie proceduralne i obiektowe

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

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

FAQ: /PL Data: 2/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem LOGO!

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Programowanie w C Wartości pseudolosowe i pomiar czasu

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Programowanie wielowarstwowe i komponentowe

Programowanie aplikacji okienkowych Windows


ZESTAW LABORATORYJNY I ZESTAW FARMACEUTYCZNY : Instrukcja instalacji

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

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

1.Wstęp. 2.Generowanie systemu w EDK

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 3

FAQ: /PL Data: 14/06/2007 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-200

WPROWADZENIE DO INFORMATYKI

Galileo v10 pierwszy program

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Rozdział 5. Administracja kontami użytkowników

Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług

Laboratorium A: Korzystanie z raportów zasad grupy/klucz do odpowiedzi

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Projektowanie aplikacji internetowych laboratorium

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.

Ćwiczenie 1. Przygotowanie środowiska JAVA

Wykład 6 Dziedziczenie cd., pliki

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Wstęp do programowania

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

MS Visual Studio Express 2012 for Web instalacja i konfiguracja

Podstawy technologii WWW

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

dr inż. Tomasz Krzeszowski

Visual Studio instalacja

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

1. Tworzenie nowego projektu.

Programowanie w Javie

Programowanie obiektowe

Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Temat: Kopiowanie katalogów (folderów) i plików pomiędzy oknami

Wykład 5 Okna MDI i SDI, dziedziczenie

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Programowanie obiektowe

Ćwiczenia 9 - Swing - część 1

INFORMATOR TECHNICZNY WONDERWARE

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Pliki. Informacje ogólne. Obsługa plików w języku C

Zadanie 11. Przygotowanie publikacji do wydrukowania

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Laboratorium A: Zarządzanie drukowaniem/klucz do odpowiedzi

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

Ćwiczenia z S Komunikacja S z dotykowymi panelami HMI na przykładzie współpracy sterownika z panelem KTP600 PN.

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Programowanie Obiektowe GUI

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Podstawy i języki programowania

Allegro5 część 1 - Witaj Świecie! Projekt, inicjalizacja, tworzenie okna, czcionki. Autor: Kamil Krzyszczuk - C mons

Lokalizacja Oprogramowania

Transkrypt:

Ćwiczenia laboratoryjne Oprogramowanie i badanie prostych metod sortowania w tablicach Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie. Bazowa zawartość sprawozdania musi być przygotowana w domu przed ćwiczeniem (sprawozdanie do ćwiczenia pierwszego jest przygotowywane w czasie ćwiczenia). W czasie ćwiczenia do sprawozdania są dodawane wyniki testowania. Treść sprawozdania: strona tytułowa, spis treści sporządzony za pomocą Word'a, dla każdego zadania rozdziały "Zadanie ", "Opracowanie zadania" (rozdział z tekstem programu i komentarzami), "Testowanie" (rozdział z opisem danych wejściowych i wynikami testowania, w tym zrzuty aktywnego okna). Wzorzec strony tytułowej znajduje się w pliku Strona_tytulowa_niestac_AiSD.doc. Nazwa (bez polskich liter, żeby można było archiwizować) pliku ze sprawozdaniem musi zawierać skrót "AiSD_", numer grupy, numer ćwiczenia i nazwisko studenta. Pliki ze sprawozdaniem są przekazywane do archiwum grupy. Sortowanie w tablicy Zadanie Zadanie polega na oprogramowaniu sortowania w tablicy przez wstawianie proste, wybieranie proste, zamianą prostą lub metodą bąbelkowej według wariantu z tabeli wariantów. Dane pseudolosowe w ilości 10000 rozmieścić w tablicę dynamicznej i zapisać do pliku tekstowego, przy tym liczby po 20, a litery po 100 w wierszu. Posortować dane w tablicy, a przy tym zmierzyć i wyświetlić czas sortowania, i wynik zapisać do innego pliku tekstowego, przy tym liczby po 20, a litery po 100 w wierszu. Opracowanie zadania ( t e k s t p r o g r a m u ) Testowanie Sprawdzić w plikach poprawność sortowania. W sprawozdaniu umieścić po 100 wierszy z obydwóch plików. Przedstawić zrzut okna z czasem sortowania. Tabela wariantów Np Algorytm Dane Na początku tablicy Np Algorytm Dane Na początku tablicy 1 wstawianie proste liczby najmniejszy 17 wstawianie proste liczby największy 2 wybieranie proste liczby najmniejszy 18 wybieranie proste liczby największy 3 zamiana prosta liczby najmniejszy 19 zamiana prosta liczby największy 4 bąbelkowy liczby najmniejszy 20 bąbelkowy liczby największy 5 wstawianie proste litery najmniejszy 21 wstawianie proste litery największy 6 wybieranie proste litery najmniejszy 22 wybieranie proste litery największy 7 zamiana prosta litery najmniejszy 23 zamiana prosta litery największy 8 bąbelkowy litery najmniejszy 24 bąbelkowy litery największy 9 wstawianie proste liczby największy 25 wstawianie proste liczby najmniejszy 10 wybieranie proste liczby największy 26 wybieranie proste liczby najmniejszy 11 zamiana prosta liczby największy 27 zamiana prosta liczby najmniejszy 12 bąbelkowy liczby największy 28 bąbelkowy liczby najmniejszy 13 wstawianie proste litery największy 29 wstawianie proste litery najmniejszy 14 wybieranie proste litery największy 30 wybieranie proste litery najmniejszy 15 zamiana prosta litery największy 31 zamiana prosta litery najmniejszy 16 bąbelkowy litery największy 32 bąbelkowy litery najmniejszy

Wskazówki Środowisko W zależności od zainstalowanego środowiska Microsoft Visual Studio wykonać punkt A lub B. A) Wejść do środowiska Microsoft Visual Studio 2005. Wybrać punkt menu File / New Project.., zaznaczyć język programowania Visual C++, rodzaj aplikacji Windows Forms Application, wprowadzić na dole okna nazwę projektu, na przykład Pr1, oraz wybrać folder projektu. B) Wejść do środowiska Microsoft Visual Studio 2012. Wybrać punkt menu File / New / Project..., zaznaczyć rodzaj aplikacji Win32 w Templates / Visual C++ i wybrać "Win32 Project", dalej na dole okna w polu "Name" wprowadzić nazwę projektu, na przykład Pr1, a za pomocą przycisku "Browse" w polu "Location" wyznaczyć folder projektu. Nacisnąć przycisk "OK". W oknie "Win32 Application Wizard" wybrać punkt "Application Settings" i zaznaczyć opcję "Empty project". Nacisnąć przycisk "Finish". W menu projektu wybrać "PROJECT/Properties". W oknie "Property Pages" : 1) zaznaczyć opcję "Configuration Properties / General / Project Defaults / Common Language Runtime Support" na wartość "Common Language Runtime Support (/clr)"; 2) zaznaczyć opcję "Configuration Properties / C/C++ / General / Common Language Runtime Support" na wartość "Common Language Runtime Support (/clr)"; 3) wpisać do opcji "Configuration Properties / Linker / Advanced / Entry Point" nazwę "Main"; Nacisnąć przyciski "Zastosuj" i "OK". W podoknie "Solution Explorer" nacisnąć prawym przyciskiem myszy na nazwę projektu, wybrać punkt menu "Add / New Item...", wybrać "UI / Windows Form" i nacisnąć "Add". Do pliku "MyForm.cpp" dodać tekst z głównym podprogramem "Main": using namespace System; using namespace System::Windows::Forms; [STAThread] void Main(array<System::String^>^ args) Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Application::Run(gcnew Pr::MyForm()); gdzie "Pr" to nazwa projektu. Opracowanie graficznej części aplikacji Nadać formularzowi nagłówek Sortowanie przez.... Autor.... Wprowadzić do formularza obiekty graficzne: - do wyświetlenia czasu sortowania, - do inicjalizacji operacji (klawisz Start ). Czas sortowania można wyświetlić w obiekcie typu "Label". Do inicjalizacji sortowania jest potrzebny klawisz typu Button z napisem Start. Programowanie operacji Zdefiniować potrzebne struktury programowe oraz zmienne.

Generowanie liczb pseudolosowych W środowisku Visual C++ do generowania liczb pseudolosowych można zastosować obiekt klasy Random lub funkcję rand. Funkcja rand jest opisana w pliku <stdlib.h>: int rand(); Funkcja rand zwraca pseudolosową liczbę całkowitą nieujemną z zakresu (0..RAND_MAX), gdzie RAND_MAX jest równa 32767. Stosowanie tylko funkcji rand powoduje, że łańcuch liczb pseudolosowych będzie jednakowy przy każdym uruchomieniu aplikacji. Aby łańcuch liczb pseudolosowych nie był jednakowym, stosuje się ustawienie początkowe generatora liczb pseudolosowych za pomocą funkcji srand: void srand(unsigned int seed); Jako argument seed funkcji srand zwykle jest wykorzystywany czas systemowy zwrócony przez funkcję _time32 (opis znajduje się w pliku <time.h>): srand((unsigned)_time32(null)); Odczyt z pliku W środowisku Visual C++ można operować plikami na dwa sposoby: 1) można stosować funkcje standardowego języka C; 2) można stosować klasy środowiska, w tym StreamReader. Funkcje standardowego języka C są lepiej przystosowane do potrzebnych w tym ćwiczeniu operacji bajtowych. Odczyt z pliku w przypadku stosowania funkcji standardowego języka C: #include <string.h> #include <stdio.h> #include <io.h> #include <direct.h> #include <stdlib.h> #include <vcclr.h> char folder[512]; char nazwa[640]; _getcwd(folder,512);//odczyt ścieżki do foldera z projektem strcpy(nazwa,folder); //formowanie nazwy pliku strcat(nazwa,"\\dane.txt"); //formowanie nazwy pliku FILE* pf=fopen(nazwa,"rt+"); // otwarcie pliku tekstowego if (pf) int handle=_fileno(pf); // deskryptor pliku long filesize=_filelength(handle); // rozmiar pliku char* buf=new char[filesize]; //alokacja bufora fread(buf,1,filesize,pf); // odczyt do bufora fclose(pf); // zamknięcie pliku // tekst w buforze "buf" W środowisku Visual C++ plik "dane.txt" musi być w tym folderze, gdzie znajduje się plik projektu "*.vcxproj".

Odczyt z pliku w przypadku stosowania klas środowiska: using namespace System::IO; nazwa katalogu, w którym znajduje się aplikacja: System::String^ paskat=system::io::directory::getcurrentdirectory(); System::String^ pas1=system::string::concat(paskat,l"\\dane.txt");//nazwa pliku ze ścieżką //ładowanie pliku: StreamReader^ din1 = File::OpenText(pas1); // otwarcie pliku tekstowego String^ ps1=din1->readtoend(); din1->close(); Zapisywanie do pliku W środowisku Visual C++ można operować z plikami na dwa sposoby: 1) można stosować funkcje standardowego języka C; 2) można stosować klasy środowiska, w tym StreamWriter. Funkcje standardowego języka C lepiej przystosowane do potrzebnych w tym ćwiczeniu operacji bajtowych. Zapisywanie do pliku w przypadku stosowania funkcji standardowego języka C: char buf[512]; char nazwa[640]; FILE* pf; _getcwd(buf,512);//odczyt ścieżki do foldera z projektem strcpy(nazwa,buf); //formowanie nazwy pliku strcat(nazwa,"\\dane11.txt"); //formowanie nazwy pliku pf=fopen(nazwa,"wt+"); // otwarcie pliku tekstowego if (pf) for (int j=0;j<10000;j+=20) //zapisywanie po 20 liczb; każda w 6 pozycjach; z bufora Licz10000 for (int k=0,pos=0;k<20;k++,pos+=6) int liczba=licz10000[j+k]; sprintf(&buf[pos],"%6d\r\n",liczba); int size=strlen(buf); fwrite(buf,1,122,pf); //122=20*6+2 zapisywanie bufora fclose(pf); // zamknięcie pliku Zapisywanie do pliku w przypadku stosowania klas środowiska: using namespace System::IO; nazwa katalogu, w którym znajduje się aplikacja: String ^paskat=system::io::directory::getcurrentdirectory(); zapisywanie do pliku: String ^pas1=string::concat(paskat,l"\\dane01.txt");//nazwa pliku ze ścieżką //ładowanie pliku: StreamWriter ^din1 = gcnew StreamWriter(pas1); // otwarcie pliku tekstowego for (int j=0;j<10000;j+=20) //zapisywanie po 20 liczb w wierszu z buforu Lit10000 String ^ps1=""; for (int k=0;k<20;k++) ps1+=lit10000[j+k].tostring(); din1->writeline(ps1); din1->close();

Mierzenie czasu W środowisku Visual C++ do mierzenia czasu można zastosować właściwość Ticks klasy DateTime, która podaje czas w 100 nanosekundowych interwałach: DateTime dt; dt=datetime::now; int64 beg=dt.ticks; // działania, których czas zamierzamy zmierzyć dt=datetime::now; int64 end=dt.ticks; int64 delta=end-beg; double czas=(double)(delta/10000000.0); // czas w sekundach Dla dokładnego mierzenia czasu lepiej stosować zegar z wielką częstotliwością: #include <windows.h> LARGE_INTEGER freq,beg,end; BOOL bb1=queryperformancefrequency(&freq); BOOL bb2=queryperformancecounter(&beg); // działania, których czas zamierzamy zmierzyć BOOL bb3=queryperformancecounter(&end); if (bb1 && bb2 && bb3) int64 freq64=freq.quadpart; int64 beg64=beg.quadpart; int64 end64=end.quadpart; int64 delta=end64-beg64; double czas=(double)delta/(double)freq64; /* czas w sekundach */