2023-03-04 00:00:13 +03:00
## letsbegin
2025-09-19 18:36:37 +03:00
Копия README.md на сайте `https://timplab.syktsu.ru/131/lab0_letsbegin`
2023-03-04 00:00:13 +03:00
```
Пользователи VM
user/user
root/root
```
Задачи:
2025-09-19 18:36:37 +03:00
* Развернуть В М `debian 13` .
2023-03-04 00:00:13 +03:00
* shell intro
* потыркать gcc, vim/gedit/code (visual studio code), man
* Вспомнить/почитать про указатели в C
* написать функции
* helloworld -- программа печатающая helloworld ^_^
2025-09-19 18:36:37 +03:00
* написать функцию `mystrlen` (функция, печатающая длину строки)
2023-03-04 00:00:13 +03:00
Интерфейс функции:
```
int mystrlen(const char *s);
```
2025-09-19 18:36:37 +03:00
* написать функцию `mystr_idx` ,
которая находит индекс строки **substr** в строке **str** или -1, если такой подстроки нет
2023-03-04 00:00:13 +03:00
Интерфейс функции:
```
2023-03-17 21:06:38 +03:00
int mystr_idx(char *str, char *substr);
2023-03-04 00:00:13 +03:00
```
Примеры работы:
2025-09-19 18:36:37 +03:00
```
2023-03-04 00:00:13 +03:00
mystr_idx("helloworld", "world") == 5
mystr_idx("helloworld", "helloworld") == 0
mystr_idx("helloworld", "foo") == -1
2025-09-19 18:36:37 +03:00
```
2023-03-04 00:00:13 +03:00
2025-09-20 00:29:19 +03:00
* Написать функцию `sum` (функция должна суммировать int-массив). Какой будет её интерфейс?
* Написать функцию `fib` , считающая n-ный элемент последовательности фибоначи
```
int fib(int n);
```
* функция `myatoi` (*), которая конвертит входную строку в чиселко.
```
int myatoi(char *instr);
```
Примеры работы:
```
myatoi("1") == 1
myatoi("42") == 42
myatoi("-105") == -105
```
Дополнительное задание -- обновить интерфейс функции, чтобы была возможность указывать базу входного чиселка для конвертации.
Дополнительное задание -- что нам делать, если мы хотим отлавливать ошибки функции (например когда ей передали не число)
2025-09-20 00:30:11 +03:00
Дополнительное задание -- что будет если запустить `myatoi("18446744073709551617")` (18446744073709551617 == 2 ** 64 + 1) ? Почему результат именно такой?
2023-03-04 00:00:13 +03:00
Могут пригодится утилиты:
2025-09-19 18:36:37 +03:00
2023-03-18 01:46:43 +03:00
* cd, ls, mv, cat, pwd -- утилиты для навигации в консоли
2023-03-04 00:00:13 +03:00
* gcc(1) -- компилятор
* diff(1) -- утилита для поиска различий между двумя текстовыми файлми
может пригодится для тестов
* rm(1) -- утилита для удаления файлов
2023-03-17 19:54:37 +03:00
* code -- Среда разработки VSCode
* vim(1) -- текстовый редактор
2025-09-19 18:36:37 +03:00
* man(1) -- встроеная справка
2023-03-04 00:00:13 +03:00