Skip to content

Instantly share code, notes, and snippets.

@marcinjahn
Last active February 10, 2023 15:05
Show Gist options
  • Save marcinjahn/cdb5f7a0ac15ef9f8854421003caa312 to your computer and use it in GitHub Desktop.
Save marcinjahn/cdb5f7a0ac15ef9f8854421003caa312 to your computer and use it in GitHub Desktop.
Przykład programu na zaliczenie C#
using System;
using System.Collections.Generic;
using System.Linq;
// Typy danych
record Student(IEnumerable<SubjectWithMarks> Subjects);
record SubjectWithMarks(Subject Subject, Marks Marks);
record Marks(int Semester1Mark, int Semester2Mark);
enum Subject
{
Matematyka,
Historia,
Chemia
}
// Program
class Program
{
public static void Main(string[] args)
{
// Przykładowi ucznowie i ich oceny:
var john = new Student(
new SubjectWithMarks[] {
new SubjectWithMarks(Subject.Matematyka, new Marks(1, 3)),
new SubjectWithMarks(Subject.Historia, new Marks(2, 1)),
new SubjectWithMarks(Subject.Chemia, new Marks(3, 1))
}
);
var andrew = new Student(
new SubjectWithMarks[] {
new SubjectWithMarks(Subject.Matematyka, new Marks(2, 2)),
new SubjectWithMarks(Subject.Historia, new Marks(2, 1)),
new SubjectWithMarks(Subject.Chemia, new Marks(1, 3))
}
);
var students = new Student[] { john, andrew };
// Wybór przedmiotu
var selectedSubject = Subject.Historia;
// Szukanie przedmiotu
var semester1Fails = 0;
var semester2Fails = 0;
foreach (var student in students)
{
var marks = student.Subjects
.Where(n => n.Subject == selectedSubject)
.FirstOrDefault()?.Marks;
semester1Fails += marks?.Semester1Mark == 1 ? 1 : 0;
semester2Fails += marks?.Semester2Mark == 1 ? 1 : 0;
}
// Wyświetlenie informacji
if (semester1Fails > semester2Fails)
{
Console.WriteLine($"Więcej złych ocen z przedmiotu {selectedSubject} w pierwszym semestrze");
}
else if (semester1Fails < semester2Fails)
{
Console.WriteLine($"Więcej złych ocen z przedmiotu {selectedSubject} w drugim semestrze");
}
else
{
Console.WriteLine($"Oba semestry mają tę samą ilosć złych ocen z przedmiotu {selectedSubject}");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment