commit 64e0fd19a7afcbd096135394dbb33a1bae9965e9 Author: renka Date: Sat Oct 4 08:09:12 2025 -0400 lol diff --git a/lab0_letsbegin/README.md b/lab0_letsbegin/README.md new file mode 100644 index 0000000..1056b13 --- /dev/null +++ b/lab0_letsbegin/README.md @@ -0,0 +1,74 @@ +## letsbegin + +Копия README.md на сайте `https://timplab.syktsu.ru/131/lab0_letsbegin` + +``` +Пользователи VM +user/user +root/root +``` + +### Задачи + +* Развернуть ВМ `debian 13`. +* shell intro +* потыркать gcc, vim/gedit/code (visual studio code), man +* Вспомнить/почитать про указатели в C + +* Написать helloworld -- программу, которая печатает helloworld ^_^. Скомпилявить её с помощью gcc и запустить. + +* написать функции + * написать функцию `mystrlen` (функция, печатающая длину строки) + Интерфейс функции: + ``` + int mystrlen(const char *s); + ``` + * написать функцию `mystr_idx`, + которая находит индекс строки **substr** в строке **str** или -1, если такой подстроки нет. + Интерфейс функции: + ``` + int mystr_idx(char *str, char *substr); + ``` + Примеры работы: + ``` + mystr_idx("helloworld", "world") == 5 + mystr_idx("helloworld", "helloworld") == 0 + mystr_idx("helloworld", "foo") == -1 + ``` + + * Написать функцию `sum` (функция должна суммировать int-массив). Какой будет её интерфейс? + + * Написать функцию `fib`, считающая n-ный элемент последовательности фибоначи + ``` + int fib(int n); + ``` + + * функция `myatoi` (*), которая конвертит входную строку в чиселко. + ``` + int myatoi(char *instr); + ``` + Примеры работы: + ``` + myatoi("1") == 1 + myatoi("42") == 42 + myatoi("-105") == -105 + ``` + Дополнительное задание -- обновить интерфейс функции, чтобы была возможность указывать базу входного чиселка для конвертации. + + Дополнительное задание -- что нам делать, если мы хотим отлавливать ошибки функции (например когда ей передали не число) + + Дополнительное задание -- что будет если запустить `myatoi("18446744073709551617")`(18446744073709551617 == 2 ** 64 + 1) ? Почему результат именно такой? + +## help + +Для работы вам могут пригодится следующие команды и утилиты: + +* cd, ls(1), mv(1), cat(1), pwd(1) -- утилиты для навигации в консоли +* gcc(1) -- компилятор С +* diff(1) -- утилита для поиска различий между двумя текстовыми файлми + может пригодится для тестов +* rm(1) -- утилита для удаления файлов +* code -- Среда разработки VSCode +* vim(1) -- текстовый редактор +* man(1) -- встроеная справка +