Задачи решавани в час на 09.05 и 16.05

Meme review

Да се напише структура за мийм, която съдържа членове за URL(стринг), заглавие, оценка(дробно число между 0 и 5) и коментар. Да се създаде динамичен масив от миймове. От потребителския вход да се въвеждат нови миймове, като при въвеждане всеки от тях получава случайна оценка. При въвеждане на over да се прекрати въвеждането и на екрана да се изведе миймът с най-висока оценка.

Разширение: Да се добави структура за коментар с членове за текст на коментара, потребителско име на автора, дата(във формата YYYY-MM-DD) и брой гласове. Структурата за мийм да се промени за да съдържа динамичен масив от коментари. При въвеждане на мийм да могат да се въвеждат и коментари към него.

За експерти: Структурата за мийм и въвеждането да се променят по такъв начин, че за мийма да може да се въвежда картинка под формата на ascii art и впоследствие тя да се принтира на екрана.

Queue

Да се имплементира структурата от данни Опашка(queue). При нея елементите се изваждат в реда в който са добавени(първи добавен е първи изваден). Напишете структури за елемент(с членове за стойност и указател към следващ елемент) и опашка(с членове за размер и указател към първия елемент). Напишете функции за инициализация на опашката, добавяне на нов елемент и изваждане на първия.

Разширение: Променете опашката в приоритетна опашка. При нея всеки елемент освен стойност има и приоритет. Новодобавен елемент не отива задължително на последна позиция - вместо това елементите се подреждат според приоритета им и първи ще излязат елементите с по-висок приоритет.

Риболов

Напишете прорама за риболов в река. Дефинирайте масив от 15 елемента, съдържащи дробно число между 0 и 1. Това представлява шанса да се хване риба. Тези стойности може да се въвеждат от потребителя, да са случайни или да са зададени в програмата. Потребителят започва с 10 броя стръв(напр. червеи). Докато има наличчна стръв да се извърши следното:

  • потребителят въвежда цяло число - индекс в горния масив
  • генерира се случайно число между 0 и 1
  • генерираното число се сравняна със стойността в клетката на въведения индекс
  • ако генерираното число е по-малко или равно на стойността в клетката то потребителят е хванал риба - броят уловени риби се увеличава
  • ако генерираното число е по-голямо от стойността в клетката то потребителят не е хванал риба
  • наличната стръв се намалява с 1 Когато стръвта свърши да се изведе на екрана колко риби са уловени.

Разширение: Напишете структура за риба, която съдържа шансове да бъде уловена за 4 различни вида стръв. Напишете структура за клетка, която съдържа 4 различни риби и техните шансове да бъдат уловени. Броят клетки да се въвежда като конзолен аргумент. Потребителят да започва с по 10 от 4те вида стръв и докато има налична стръв да се извършва следното:

  • потребителя въвежда цяло число - индекс на клетка и стръвта, която иска да използва
  • генерира се случайно число между 0 и 1
  • генерираното число се сравнява със стойностите за избраната стръв на всички риби в клетката на избрания индекс
  • логиката за сравнение е същата, с тези допълнения:
    • ако повече от 1 риба отговаря на изискването се хваща рибата с най-голям шанс за хващане
    • за всички видове риба се пазят отделни броячи
    • избраната стръв се намалява с 1 Когато всичката стръв на потребителя свъри да се изведе на екрана по колко риби от всеки вид са хванати.