Skip to content

Commit

Permalink
ulepszona tabelka z podzadaniami
Browse files Browse the repository at this point in the history
  • Loading branch information
jjrozek committed Apr 29, 2024
1 parent 9e9828e commit fbb43c5
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 62 deletions.
73 changes: 38 additions & 35 deletions example_package/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,39 @@

# **Szablon paczki**

- [**Ogólne informacje**](#ogólne-informacje)
- [**doc**](#doc)
- [**talentTex.cls**](#talenttexcls)
- [**prog**](#prog)
- [**Rozwiązania**](#rozwiązania)
- [**ingen**](#ingen)
- [**inwer**](#inwer)
- [**checkerka**](#checkerka)
- [**oi.h**](#oih)
- [**Scanner (Wczytywanie)**](#scanner-wczytywanie)
- [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych)
- [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób)
- [**CheckerVerdict**](#checkerverdict)
- [**checker\_test**](#checker_test)
- [**InwerVerdict**](#inwerverdict)
- [**bug**](#bug)
- [**oi\_assert**](#oi_assert)
- [**Random**](#random)
- [in i out](#in-i-out)
- [Testy ocen](#testy-ocen)
- [Generowanie](#generowanie)
- [dlazaw](#dlazaw)
- [attachment](#attachment)
- [**config.yml**](#configyml)
- [Interactive tasks](#interactive-tasks)
- [Time](#time)
- [Memory](#memory)
- [Title](#title)
- [Scores](#scores)
- [Task ID](#task-id)
- [Contest type](#contest-type)
- [Expected scores](#expected-scores)
- [**Szablon paczki**](#szablon-paczki)
- [**Ogólne informacje**](#ogólne-informacje)
- [**doc**](#doc)
- [**talentTex.cls**](#talenttexcls)
- [**prog**](#prog)
- [**Rozwiązania**](#rozwiązania)
- [**ingen**](#ingen)
- [**inwer**](#inwer)
- [**checkerka**](#checkerka)
- [**oi.h**](#oih)
- [**Scanner (Wczytywanie)**](#scanner-wczytywanie)
- [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych)
- [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób)
- [**CheckerVerdict**](#checkerverdict)
- [**checker\_test**](#checker_test)
- [**InwerVerdict**](#inwerverdict)
- [**bug**](#bug)
- [**oi\_assert**](#oi_assert)
- [**Random**](#random)
- [in i out](#in-i-out)
- [Testy ocen](#testy-ocen)
- [Generowanie](#generowanie)
- [dlazaw](#dlazaw)
- [attachment](#attachment)
- [**config.yml**](#configyml)
- [Interactive tasks](#interactive-tasks)
- [Time](#time)
- [Memory](#memory)
- [Title](#title)
- [Scores](#scores)
- [Task ID](#task-id)
- [Contest type](#contest-type)
- [Expected scores](#expected-scores)

## **Ogólne informacje**

Expand Down Expand Up @@ -85,9 +86,11 @@ Te polecenia również tworzą nagłówek "Wejście" i "Wyjście".

- `\ocen{\testOcen{}{} ...}` - Lista wszystkich testów ocen.
- `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem.
- `\ocenTable{}` - Tworzy tabelę z podzadaniami. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty).
- `\ocenRow{nr & opis & punkty}` - Pojedynczy wiersz tabeli: kolejne komórki powinny być rozdzielone znakiem &.
Jeśli chcesz mieć 2 linie w pojedynczej komórce tabeli użyj `\ocenElement{text}`.
- `\ocenTable{}` - Tworzy tabelę z podzadaniami.
Jako argument należy przekazać `\ocenRow{}{}`, dla każdego podzadania.
Opcjonalnie można podać ile punktów jest za zadanie `\ocenTable[100]{}`.
Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty).
- `\ocenRow{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem.

## **prog**

Expand Down
Binary file modified example_package/doc/abczad.pdf
Binary file not shown.
13 changes: 5 additions & 8 deletions example_package/doc/abczad.tex
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,8 @@
% % Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out
% \ocen{text} % Lista wszystkich testów ocen.
% \testOcen{text}{text2} % Pojedyńczy test ocen z opisem.
% \ocenTable{text} % Tabela z podzadaniami.
% \ocenRow{text} % Pojedyńczy wiersz tabeli: kolejne komórki powinne być rodzielone znakiem &.
% \ocenElement{text} % Jeśli chcesz mieć 2 linie w pojedyńczej komórce tabeli.
% \ocenTable[100]{text} % Tabela z podzadaniami. Opcjonalnie można podać ile punktów jest za zadanie.
% \ocenRow{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem.

\start{}

Expand Down Expand Up @@ -88,12 +87,10 @@
Zestaw testów dzieli się na następujące podzadania.
Testy do każdego podzadania składają się z jednej lub większej liczby osobnych grup testów.

% Alternatywnie \customOcenTable{|c|c|c|}{\tc{Nr} & \tc{Ograniczenia} & \tc{Punkty}}{reszta tabeli}

\ocenTable{
\ocenRow{1 & $\tc{n} \leq 100$ & 30}
\ocenRow{2 & \ocenElement{$\tc{n} \leq 1000$ Dwie\\ Linie} & 20}
\ocenRow{3 & Bez ograniczeń & 50}
\ocenRow{30}{$\tc{n} \leq 100$}
\ocenRow{20}{$\tc{n} \leq 1000$ Dwie\\ Linie}
\ocenRow{50}{Bez ograniczeń}
}

\finish{}
37 changes: 18 additions & 19 deletions example_package/doc/talentTex.cls
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
% \definecolor{talentBlue}{RGB}{31, 73, 125} % Ciemny

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% zmienne logiczne
% zmienne logiczne i liczniki
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifsinolshortages \sinolshortagesfalse % niedoprecyzowania
\newif\ifsinolerrors \sinolerrorsfalse % bledy
Expand All @@ -61,6 +61,9 @@
\newif\ifMemorydefed \Memorydefedfalse % czy podano dostępną pamięć
\newif\iftimedefed \timedefedfalse % czy podano czas działania

\newcounter{subtestsCounter} % licznik podzadań w tabelce
\newcounter{sumPointCounter} % suma punktów do zdobycia w zadaniu

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Obsługa plików: inf, err
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Expand Down Expand Up @@ -629,27 +632,23 @@
\item[] \textbf{\color{talentBlue}\ID#1: \ }{#2}
}

\newcommand{\ocenTable}[1]{
\customOcenTable{|c|c|c|}{\tc{Nr}&\tc{Ograniczenia}&\tc{Punkty}}{#1}
}

\newcommand{\customOcenTable}[3]{
\newcommand{\ocenTable}[2][100]{
\setcounter{subtestsCounter}{0}
\setcounter{sumPointCounter}{0}
\begin{center}
\begin{tabular}{#1}
\hline
#2 \\
\hline
#3
\begin{tabular}
{|c|l|c|} \hline
\tc{Nr} & \tc{Ograniczenia} & \tc{Punkty} \\ \hline
#2
\end{tabular}
\end{center}
\ifneq{\arabic{sumPointCounter}}{#1}{%
Uwaga! W tyma zadaniu suma punktów do zdobycia wynosi \arabic{sumPointCounter} punktów.
}
}

\newcommand{\ocenRow}[1]{
#1 \\ \hline
}

\newcommand{\ocenElement}[1]{
\begin{tabular}{@{}c@{}}
#1
\end{tabular}
\newcommand{\ocenRow}[2]{
\stepcounter{subtestsCounter}%
\addtocounter{sumPointCounter}{#1}%
\arabic{subtestsCounter} & \begin{tabular}{@{}l@{}} #2 \end{tabular} & #1 \\ \hline
}

0 comments on commit fbb43c5

Please sign in to comment.