Новинарски форум

Контролно 2 за 6-та група

Контролно 2 за 6-та група

от Мария Николова -
Number of replies: 5

Предполагам вече сте се информирали взаимно от колегите, които бяха последния път на упражнение, но, все пак...

Контролното ще бъде тази петък вечер в зала 306. Предлагам ви да дойдете около 18:45, за да започнем около 19:00 и да свършим в 21:00.

Залата е запазена от доста по-рано, затова, ако има хора, за които този часови диапазон е зает, нека да пишат тук (може евентуално да ви разделим на две групи, едната по-рано).

На друга дата няма да правим контролно, съжалявам, че колегите, които ще правят и устен изпит по анализ в същия ден, ще са така натоварени, но се обадиха прекалено късно (цяла седмица след фиксирането на датата).

Форматът на контролното е простичък - 2 задачи, всяка носи по 2 единици от оценката. Ако има недоволни, отсега казвам, че беше по ваш избор.

Както обещах, ще има и отделно малка част за поправяне на оценките от първото контролно (които, веднага щом са готови, ще ви кача).

Ще ви кача и неща за подготовка (минимум условия на задачи).

За който не знае, материалът е:
Работа със системните примитиви open, close, read, write. Различни варианти за отваряне и създаване на файл. Четене на байтове в буфер. Изписване на точен брой байтове от буфер.

Ако имате въпроси, питайте без колебания.

In reply to Мария Николова

Re: Контролно 2 за 6-та група

от Мария Николова -

Качих материали за подготовка. Можете да задавате въпроси, може и да ми пращате примерни решения за рецензия.

In reply to Мария Николова

Re: Контролно 2 за 6-та група

от Мария Николова -

В момента вече са проверени 3/4 от вторите контролни и тестовете от добавките към първото. Резултатите показват, че през септември ще трябва да се видим с Ивайло, а останалите със сигурност събирате поне 3.00.

Веднага щом са говоти резултатите, ще ги имате, надявам се да не се наложи да идвам на изпита ви, за да ги нося (за Панка помня, че трябва днес или утре сутрин да има резултат :)).

In reply to Мария Николова

Re: Контролно 2 за 6-та група

от Мария Николова -

Ето резултатите.

Всеки да си прегледа и, ако има въпроси защо така, да пише тук (не на имейла ми, тук, в тази тема) какво го интересува. Давам ви срок до 20 ч. на 5 юли, след това ще пратя окончателните оценки на ас. Филипова.

Може да не успявам да отговарям веднага, но ще обърна внимание на всеки един въпрос.

Attachment Grades.png
In reply to Мария Николова

Re: Контролно 2 за 6-та група

от Георги Йосифов -

Здравейте, 

  Имам въпрос при оценка 5,25 на теория и 5,53 на писмен, каква би била крайната оценка :)
Освен това бих желал да си разбера грешките от второто контролно (и добавката от първото)

Мерси

In reply to Георги Йосифов

Re: Контролно 2 за 6-та група

от Мария Николова -

Въпроса за крайната оценка не е от моите компетенции, съжалявам.

Грешките:

Добавка, В5 - отговорът ти е if [ $(cat somefile1) -n $(cat somefile2) ] и т.н.
Първо те питам - тества ли го?
Второ - какво правим, ако някой от двата файла е филмче от 3-4 ГБ - слагаме съдържанието му в променлива??
Трето - виж добре какво значи -n в test и как се ползва.
Четвърто, дори и да ставаше със сравняване на изхода от cat, твоя файл само от една дума ли е? Не ти ли липсва нещо, за да го подадеш на test като една дума?
Пето, поне за второто контролно по тези въпроси можеше да се прегледат командите, които сме учили и, по-специално, cmp. ;)

Добавка, Задача:
Ако някой от файловите аргументи има whitespace в името си - гърмиш. Заместване на стойност на променлива, означаваща име на файл, става чрез ограждане в кавички (напр. "$file", а не само $file) - така шелът при разделянето на думи счита това в кавичките за един token, а не за отделни.
Пишеш във файла error_log с > error_log. Така всяко писане презаписва файла и накрая в него определено няма списък с указаните имена на файлове. Правилният подход е в началото файлът да се създаде/изпразни и после да се пише с append (>> error_log).

К2, З1:
Обхождаш си аргументите от командния ред с:
for (i = 1; i <= argc; i++)
което не е правилно. Препоръчвам ти или да потърсиш повече информация за argv и argc в C, или направо да си напишеш програмка, която да ти принтира argv[0], argv[1], ..., argv[argc-1], argv[argc].
Също така, добре си се сетил, че, след като приключиш работата си с даден файл, трябва да освободиш заетия файлов дескриптор. Но после си го коментирал (на теб сме взели само половината точки за този компонент).

К2, З2:
Взели сме ти съвсем мъничко, понеже имаш малка грешка в броенето на това колко байта трябва да изпишеш.
Изписването ти е write(out, outBuff, count); което е недостатъчно като процедура. Погледни си пак какво съм ви писала за процедурата, на която сложих име full_write.