Zajęcia 1 – zasady zaliczenia przedmiotugalaxy.agh.edu.pl/~gsmyk/didactic/PI/zajecia1.pdf•...
-
Upload
phungkhuong -
Category
Documents
-
view
220 -
download
0
Transcript of Zajęcia 1 – zasady zaliczenia przedmiotugalaxy.agh.edu.pl/~gsmyk/didactic/PI/zajecia1.pdf•...
Programowanie obiektowe
Informatyka Stosowana
- Zajęcia 1 – zasady zaliczenia przedmiotu
Wydział Inżynierii Metali i Informatyki Przemysłowej
Akademia Górniczo–Hutnicza im. Stanisława StaszicaKraków, rok akademicki 2016/2017
mgr inż. Grzegorz Smyk
KATEDRA INFORMATYKI STOSOWANEJ I MODELOWANIA
PRACOWNIA MODELOWANIA SYMULACJI PROCESÓW
www.isim.agh.edu.pl
• B5 p. 605
• www.galaxy.agh.edu.pl/~gsmyk/
http://skos.agh.edu.pl
Prowadzący:
Zajęcia
PROGRAMOWANIE OBIEKTOWE
• Typ:
– LABORATORIA
• Podział na grupy:
– GR. 1: ŚR. 15:15 – 16:45 B5*601
– GR. 3: PN. 08:00 – 9:30 B5*601
– GR. 5: WT. 13:15 – 14:45 B5*601
– GR. 7: WT. 16:45 - 18:15 B5*601
Egzamin z przedmiotu
Prowadzący:
• Prof. dr hab. inż. Mirosław GłowackiWYDZIAŁ INŻYNIERII METALI I INFORMATYKI PRZEMYSŁOWEJ
KATEDRA INFORMATYKI STOSOWANEJ I MODELOWANIA
PRACOWNIA INFORMATYKI
HTTP://HOME.AGH.EDU.PL/~IP/INDEX.PHP?LANG=PL&GO=3&ID=2
Zasady przystąpienia:
- pozytywne zaliczenie ćwiczeń laboratoryjnych
Polecane materiały
Materiały online:
• http://www.cplusplus.com
• http://cpp0x.pl/
Literatura• „Symfonia C++” – Tom II, III - Jerzy Grębosz
• „Pasja C++” – Jerzy Grębosz
• „Thinking in C++” – Bruce Eckel
Zasady zaliczenia laboratoria
Obecność na zajęciach
– obecność na zajęciach jest obowiązkowa,
– możliwa jest jedna nieobecności nieusprawiedliwione,
– nieobecność nieusprawiedliwiona wymaga pisemnego zwolnienia lekarskiego na następnych zajęciach,
STUDENT, MUSI MIEĆ CO NAJMNIEJ 80% OBECNOŚCI
USPRAWIEDLIWIONYCH W SKALI SEMESTRU
Zasady zaliczenia laboratoria
Praca na laboratoriach
– studentów obejmuje harmonogram przedstawiony przez
prowadzącego,
– student jest oceniany indywidualnie na każdych zajęciach,
– student musi przygotować pisemny konspekt na każde zajęcia
odnośnie omawianego zagadnienia,
– ocena końcowa jest procentowym wynikiem punktów uzyskanych
przez studenta z wagami 1/3 – zajęcia, 2/3 – kolokwia,
– uzyskane oceny są przekazywane prowadzącemu przedmiot
0 – BRAK PRZYGOTOWANIA DO ZAJĘĆ
+1 – PRZYGOTOWANIE TYLKO KONSPEKTU
+2 – PRACA NA ZAJĘCIACH NA PODSTAWIE KONSPEKTU
Zasady zaliczenia laboratoria
Kolokwia
• w czasie semestru odbędą się trzy kolokwia w czasie wykładu,
• niezaliczone kolokwia nie będą poprawiane w trakcie semestru,
• kolokwia liczone są podwójnie do oceny końcowej z laboratoriów,
• możliwe jest dodatkowe kolokwium w trakcie ćwiczeń,
• ocena końcowa jest pozytywna, jeśli średnia jest równa lub większa od
3.0.
Student, który uzyskał ocenę średnią niższą niż 3.0może w czasie sesji dwukrotnie przystąpić dokolokwium poprawkowego (kolokwium poprawkoweobejmuje materiał z całego semestru), podwarunkiem, ze uczęszczał na zajęcia.
Zasady zaliczenia laboratoria
Laboratoria• Zakaz spożywania jedzenia oraz napojów,
• Kurtki, płaszcze oraz parasole zostawiamy w szatni na parterze budynku B5 (jeśli szatnia jest otwarta),
• „Dopuszczalne” spóźnienie wynosi maksymalnie 15 min,
• Zakaz modyfikowania istniejącej sieci Ethernet,
• Zakaz instalowania oprogramowania niezwiązanego z tematyką zajeć,
• Możliwa jest praca na własnym sprzęcie komputerowym uwzględniając w/w ograniczenie (można korzystać tylko z wolnych gniazdek zasilających),
• W trakcie semestru korzystamy z tego samego stanowiska komputerowego (wyjątkiem są grupy powyżej 15 osób),
• Wszelkie usterki i nieprawidłowości w funkcjonowaniu sprzętu i oprogramowania natychmiast zgłaszamy prowadzącemu.
MetalSoft- informatyczne koło naukowe
Sekcja Metaloznawstwa i Inżynierii Powierzchni
III miejsce - Ivan Milenin
Temat: OCENA MOŻLIWOŚCI ZASTOSOWANIA TEORII STEROWANIA DO MODELOWANIA KINETYKI PRZEMIANY AUSTENIT-FERRYT
Opiekun: prof. dr hab. inż. Maciej Pietrzyk
SEKCJA INFORMATYKI
I miejsce - Paweł WalTemat: FRONTALNY SOLWER METODY ELEMENTÓW SKOŃCZONYCH DLA HETEROGENICZNYCH ARCHITEKTUR SPRZĘTOWYCHOpiekun: dr inż. Łukasz Rauch
III miejsce - Sławomir KwaśniewskiTemat: OPRACOWANIE ALGORYTMU REPREZENTACJI GEOMETRII Z WYKORZYSTANIEM METODY NURBS NA POTRZEBY ANALIZY IZOGEOMETRYCZNEJOpiekun: mgr inż. Daniel Bachniak
Wyróżnienie - Marcin GulikTemat: OPEN AGH E-PODRĘCZNIKI – OTWARTE CYFROWE PODRĘCZNIKI AKADEMICKIEOpiekun: prof. dr hab. inż. Jan Kusiak
SEKCJA PRZERÓBKI PLASTYCZNEJ
III miejsce - Kamil SikoraTemat: OPRACOWANIE MODELU TARCIAW OPARCIU O ANALIZĘ ODWROTNĄ PRÓBY SPĘCZANIA PIERŚCIENIA DLA WYBRANYCH STOPÓWOpiekun: dr inż. Tomasz Rec
Wyróżnienie - Krzysztof Bednarski, Piotr RogowskiTemat: PROPOZYCJA KOMPUTEROWEGO SYSTEMU WSPOMAGAJĄCEGO PROJEKTOWANIE TECHNOLOGII WALCOWANIA BLACH NA GORĄCOOpiekun: prof. dr hab. inż. Maciej Pietrzyk
Działalność koła:
Zacieśnianie więzów współpracy z pracownikami naukowymi katedry ISIM
Stworzenie grup projektowych studentów różnych roczników, w celu rozwiązywania złożonych
problemów naukowych.Podnoszenie specjalistycznych kwalifikacji
zawodowych poprzez nawiązanie kontaktów z przedsiębiorstwami różnych sektorów.
Jak do nas dotrzeć:
• możesz wysłać [email protected] do nas.
• przyjść na zebranie koła
(informacje odnośnie terminów spotkań znajdują się w gablotce
Koła: B-4 1 piętro obok sali 101 lub na stronie :) )
• zapytać się o nas w laboratoriach komputerowych
(B-4 s.101 i B-5 s.601)
SPOTKANIA i WYJAZDY
Zajęcia I – zaczynamy!
File -> New -> Project
Visual C++ -> Empty Procject
Nazwa projektu:
IS_GRXX_ImięNazwisko
Dodajemy plik:
main.cpp
Zajęcia I – „Hello World!”
#include <iostream>
using namespace std;
int main()
{
cout<<„Hello World!”<<endl;
}
Nagłówek:Standard Input/Output Library
Przestrzeń nazwTyp zwracany przez funkcję
Funkcja main
Zakres funkcji
Console-output streamZnak nowej linii oraz czyszczenie strumienia
Dobre nazwy w kodzie
• przedstawiają intencje
• bez mylących i fałszywych wskazówek
• bez zbyt subtelnych różnic
• są spójne i dobrze się sortują w IDE
• można je wymówić!
• łatwo je wyszukać
• bez kodowania typów
• bez przedrostków składników
• bez kodowania interfejsów
• bez jedno-literówek
• nazwy klas mają rzeczowniki
• nazwy metod mają czasowniki
• zamiast przeciążonych konstruktorów stosujemy metody fabryk
• dowcipne nazwy mogą nie być zrozumiane
• spójny leksykon
• bez przesady ze spójnością
• używamy terminologii informatycznej
• w drugiej kolejności używamy terminologii klienta
• dodajemy znaczący kontekst
• bez nadmiarowego kontekstu
• zmiana nazwy na czytelniejszą to nic złego
Nazwy zmiennych
Przedstawiają intencje
int c;
int studentsCount;
List<int> list1 = new List<int>();List<int> temperatureValues = new List<int>();
Nazwy zmiennych
Brak mylących i fałszywych wskazówek
int hp; // hiperprzelicznik
Student[] studentList;
List<Student> studentList;
List<Student> students;
Student[] students;
Nazwy zmiennych
Brak zbyt subtelnych różnic w nazewnictwie
Student VeryGoodStudentInThisCourseOfPhysics;
Student VeryGoodStudentInThatCourseOfPhysics;
Student student;
Student aStudent;
Student theStudent;
void copyStudents(Student[] a1, Student[] a2)
void copyStudents(Student[] source, Student[] destination)
Nazwy zmiennych
• Zrozumiałe dla mózgu
• Umożliwiają dyskusję o kodzie
• Nowe osoby w zespole szybciej zrozumieją kod
class SdntRcrd126
{
private DateTime admymdhms;
private const string pszqint = "126";
}
class Student
{
private DateTime admissionTimestamp;
private const string recordId = "126";
}
Nazwy zmiennych
• Łatwość wyszukania
• Wartości stałe zamiast liczb
• Brak kodowania typów
if (s.Count > 9)
const int MAX_STUDENTS_PER_YEAR = 9;
if (students.Count > MAX_STUDENTS_PER_YEAR)
int securityCodeString; //kiedyś ta zmienna może i była typu string
Nazwy zmiennych
• Brak jedno-literówek
• Profesjonalny kod to czytelny i zrozumiały kod
• Wyjątkiem są liczniki pętli
Uri r = new Uri("http://www.agh.edu.pl");
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
for (int k = 0; k < 4; k++)
Nazewnictwo w obrębie klas
• Nazwy klas mają rzeczowniki
• Nazwy metod mają czasowniki
– „get” przed akcesorami, „set” przed mutatorami,
– „is” przed predykatami
class CourseAdvisor
class Advise
class Advice
counter.submit();
if (course.isCompleted())
totalCompletedHours += course.getTotalHours();
counter.setTotal(totalCompletedHours);
Terminologia
Możemy swobodnie stosować terminy informatyczne takie jak:
– nazwy algorytmów
– wzorców)
bo czytelnicy kodu – programiści – je znają!
Zmiana nazwy na czytelniejszą to nic złego!!
(refactoring)
Zajęcia I
1. Napisz program, który umożliwi na wczytanie dwóchzmiennych typu całkowitego z przedziału <10,90>, anastępnie wyświetli liczby od mniejszej do większej z krokiem0.5 przy pomocy pętli:
– for, while, do…while
2. Napisz program, w którym zaalokowana będzie tablicadynamiczna o rozmiarze zadanym przez użytkownika. Przekażtablicę uzupełnioną losowymi wartościami z przedziału <5,15> do funkcji. Funkcja oblicza sumę elementów w tablicy i jązwraca.
3. Napisz strukturę student, w której będą przechowywaneinformacje:
1. Imię
2. Nazwisko
3. Kierunek
4. Rok studiów
Stwórz i uzupełnij tablicę pięcioelementową typu student.