Do klasy MojaKlasa (https://ktrojanowski.blog.uksw.edu.pl/programowanie-obiektowe/kody-programow-po/: Program #6) dodaj pole nast, tak aby można było tworzyć listę dynamiczną jednokierunkową obiektów typu MojaKlasa. Czytaj dalej
Archiwa autora: k.trojanowski
PO2026: Wejściówka Lab.9
Zaprojektuj klasę, reprezentującą figurę na płaszczyźnie: trapez równoramienny.
Zaproponuj zestaw pól dla tej klasy, pozwalający na jednoznaczne określenie jej położenia na płaszczyźnie względem początku układu współrzędnych oraz jednoznacznie określający jej rozmiary (np. długości boków, podstawy, itd.). Czytaj dalej
PO2026: Wejściówka Lab.8
Napisz program, który pobiera od użytkownika jego nick oraz niewielką liczbę naturalną. Następnie program przystępuje do testu zręczności użytkownika: losuje literę występującą na klawiaturze Czytaj dalej
PO2026: Wejściówka Lab.7
Przeprowadzono pomiary temperatury w terenie za pomocą czterech czujników temperatury w okresie od 10 lutego do 12 marca. Pomiary były wykonywane przez każdy z czujników co około 5 min. Mierzone wartości zostały zapisane w pliku ( [do pobrania] – aby zapisać plik na dysk lokalny użyj prawego przycisku myszki i wybierz opcję „Zapisz element docelowy jako..” lub „zapisz link jako..”). Czytaj dalej
PO2026: Wejściówka Lab.6
Przeprowadzono pomiary temperatury w terenie za pomocą czterech czujników temperatury w okresie od 10 lutego do 12 marca. Pomiary były wykonywane przez każdy z czujników co około 5 min. Mierzone wartości zostały zapisane w pliku ( [do pobrania] – aby zapisać plik na dysku lokalnym użyj prawego przycisku myszki i wybierz opcję „Zapisz element docelowy jako..” lub „zapisz link jako..”). Czytaj dalej
PO2026: Wejściówka Lab.5
Napisz funkcję bin2int, która jako argument przyjmuje wskaźnik do tablicy znaków (np. char* t) przechowujących liczbę zapisaną w postaci binarnej w taki sposób, że pierwszym znakiem musi być zawsze '1′, tj. np. 1001, 100, 10101111, 1110010, itp., i która zwróci wartość typu int odpowiadającą podanej liczbie binarnej (np. dla 1001 będzie to wartość 9). Czytaj dalej
PO2026: Wejściówka Lab.4
Napisz program, który będzie wczytywał dane z jednego pliku tekstowego i zmienione zapisywał do drugiego. W tym celu:
- Zadeklaruj strukturalny typ danych
struct parazdefiniowany tak, że zmienna takiego typu może przechowywać dwie wartości: napis oraz liczbę. W funkcjimainzadeklaruj lokalną tablicę o długości 5, zawierającą elementy typustruct para. - Napisz funkcję
wiersz, która będzie odczytywała dane z wiersza w otwartym pliku. W wierszu zapisane są kolejno: nr indeksu studenta, nazwisko i ocena. Funkcja odczytuje dane z jednego wiersza, następnie ignoruje odczytany nr indeksu a do komórki tablicy wpisuje w odpowiednich polach tylko nazwisko i ocenę. Przyjmij, że w pliku może być dowolna liczba wierszy (jest możliwe również, że plik jest pusty), ale nie większa niż rozmiar tablicy. Przyjmij też, że dane w pliku są zawsze poprawne, tj. wiersz zawsze zawiera trójkę prawidłowych napisów w tej samej kolejności: numer, nazwisko i ocena. Nagłówek funkcji ma wyglądać tak:int wiersz(FILE* f, struct para *p)gdziefto wskaźnik do otwartego pliku, natomiastpto wskaźnik do komórki tablicy, do której mają zostać zapisane dane z jednego odczytanego wiersza pliku. Funkcja zwraca wartość zero, jeżeli odczyt zakończył się pomyślnie, a wartość 1, jeżeli nie udało się odczytać kolejnej porcji danych ze względu na koniec pliku. - W funkcji
mainpobierz od użytkownika nazwę pliku z danymi oraz nazwę pliku wyjściowego. Otwórz plik z danymi w trybie do odczytu, a plik wynikowy w trybie do zapisu. Następnie w pętli za pomocą funkcjiwierszodczytaj kolejne wiersze pliku zapisując dane w kolejnych komórkach tablicy. Każdą odczytaną komórkę tablicy zapisz od razu do pliku wynikowego tak, aby w kolejnych wierszach pliku znalazły się pary: nazwisko i ocena. Uwaga: nazwisko należy zapisać do pliku w postaci zaszyfrowanej, tj. należy zastąpić wszystkie samogłoski znakiem '*’. Jeżeli nie wszystkie komórki tablicy zostały zapełnione danymi, zapisz do pliku tylko tyle, ile zostało odczytanych z pliku wejściowego. Po zakończeniu pętli zamknij pliki, wyświetl w oknie konsoli zawartość tablicy i zakończ działanie funkcjimain. - Przygotuj sobie odpowiedni plik tekstowy z prawidłowymi danymi w kilku wierszach i umieść go we właściwym folderze. Następnie przetestuj program.
Do obsługi plików wykorzystaj funkcje: fopen, fclose, fprintf, fscanf i feof. Wszystkie z biblioteki: stdio.h.
Przetestowany, działający program (tylko plik z kodem źródłowym) uploaduj do https://e.uksw.edu.pl jako rozwiązanie zadania „Wejściówka” w sekcji „Temat 4”.
Różne przykłady zadań i problemów dotyczących działań na plikach można znaleźć w zbiorze zadań „Zadania z programowania w języku C/C++, cz. I, Jacek Krzaczkowski”, Rozdział 8, „Operacje na plikach”, który jest dostępny na moodle w kursie „PO – wykład”. Dobre słowa kluczowe dla wyszukiwarki na najbliższy tydzień to: fopen, fclose, fprintf, fscanf i feof w połączeniu z ansi c. Oczywiście niczego nie należy brać bezkrytycznie, każdy kawałek kodu warto zweryfikować wklejając do okna VC++ i sprawdzając, jak naprawdę działa.
Hint:
Przygotowując się na lab. nr 4 warto przypomnieć sobie jak skonstruowany jest C-napis, sprawdzić jak działa szyfr Cezara, oraz zapoznać się z funkcjami:
int isalpha(int c)int islower(int c)int isupper(int c)int tolower(int c)int toupper(int c)
Funkcje znajdują się w bibliotece ctype.h i służą do sprawdzania, czy dany znak jest literą i jakiego rodzaju (dużą czy małą) oraz do zamiany dużych liter na małe i małych na duże. Zadania pierwszego poziomu na lab. 4 mogą mieć wspólne fragmenty z zadaniami poziomu 2 lab. nr 3, tj. będą dotyczyły konwertowania napisów do postaci zaszyfrowanych wg różnych reguł, oraz oczywiście będą dotyczyły pracy na plikach tekstowych (materiał ostatnio omawiany na wykładzie).
ZTP2025: Wyniki egzaminu – termin drugi
Wiersze zawierają: trzy ostatnie cyfry nr indeksu, liczbę zdobytych punktów i proponowaną ocenę.
- ***137 14.5 3
- ***364 18 4
- ***473 13.5 3
- ***671 15.5 3.5
- ***674 16 3.5
Osoby zainteresowane wglądem w prace proszę o kontakt mailowy.
PO2026: Wejściówka Lab.3
Zadeklaruj strukturalny typ danych, który będzie zawierał dwa pola: napis oraz liczba całkowita. W funkcji main zadeklaruj lokalną tablicę o niewielkiej długości (np. 5), zawierającą elementy typu takiego, jak zdefiniowana wcześniej struktura. Czytaj dalej
ALIN2025: Egzamin, termin II
Informuję, że egzamin ALIN, termin II odbędzie się 4 marca, w środę, o godz. 11:00 w sali 116, bud. 21 (w jednej auli razem z egzaminem „Zaawansowane techniki programowania”).
