2025-09-20 00:37:27 +03:00
2025-09-20 00:37:27 +03:00

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) -- встроеная справка
Description
No description provided
Readme 36 KiB