lol
This commit is contained in:
74
lab0_letsbegin/README.md
Normal file
74
lab0_letsbegin/README.md
Normal file
@@ -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) -- встроеная справка
|
||||||
|
|
||||||
Reference in New Issue
Block a user