Школа 21
June 7, 2021

Школа 42 в Москве

shcool 21 и shcool 42

Основные команды:

Школа 21

Shell - Командная строка

cd - перейти в директорию

cd .. - на одну папку выше

mkdir - создать директорию

rm -r - удалить директорию

ls -l - права и файлы в директории

cat

touch - создать

vim - редактор :w - save :q - quit

ln - hard link

ln -s sim link

chmod - назначить права


И запомните святые заклинания

  1. git init - инициализация гита c
  2. git add * - все в гит
  3. git commit - комит на все загруженное
  4. git push - загружаем

git log

git diff

git log --name-status проверить что загруженно

git add -a добавления всех файлов в комит commit

git commit -m "пишем название комета"

git push origin master пушим коммит ( загружаем в гит)

git clean имя файла (удаляем из гита файл)

git clean -f -x удаляем все что красное

Задания

Читать здесь (читать)


C Piscine C 00

Все решения после компиляции gcc проверяем через norminette

https://21-school.ru/norminette

C Piscine C 00 ex00

ft_putchar.c

#include <stdio.h>
#include <unistd.h>

void ft_putchar(char c)
{
    write(1, &c, 1);
}

int main(void)
{
    char c = 'c';
    ft_putchar(c);
}

Более правильное решение. ( Для проверки удаляем int main )

void ft_putchar(char c)
{
  write(1, &c, 1);
}

C Piscine C 00 ex01

ft_print_alphabet.c

#include <stdio.h>

void ft_print_alphabet(void)
{
    char letter;

    letter = 'a';
    while (letter <= 'z')
    {
        putchar(letter);
        letter++;
    }
}

int main(void)
{
    ft_print_alphabet();
    return 0;
}  

Верное решение убирает % в конце строки. ft_putchar('\n');

void ft_print_alphabet(void)
{
  int letter = 'a';
  while (letter >= 'a' && letter <= 'z')
    ft_putchar(letter++);
  ft_putchar('\n');
}

C Piscine C 00 ex02

ft_print_reverse_alphabet.c

#include <stdio.h>

void    ft_print_reverse_alphabet(void)
{
    char    letter;

    letter = 'z';
    while (letter >= 'a')
    {
        putchar(letter);
        letter--;
    }
}

int main(void)
{
    ft_print_reverse_alphabet();
    return (0);
}

C Piscine C 00 ex03

ft_print_numbers.c

#include <stdio.h>
#include <unistd.h>

void	ft_putchar(char c)
{
	write(1, &c, 1);
}

void	ft_print_numbers(void)
{
	char	number;

	number = '0';
	while (number <= '9')
	{
		ft_putchar(number);
		number++;
	}
	ft_putchar('\n');
}

int	main(void)
{
	ft_print_numbers();
}

Исправили на короткое и более правильное решение.

void	ft_print_numbers(void)
{
  int i = '48';
  while (i >='47' && i <= '57')
    ft_putchar(i++);
  ft_putchar('\n');
}

C Piscine C 00 ex04

ft_is_negative.c

void	ft_putchar(char c)
{
	write(1, &c, 1);
}

void	ft_is_negative(int n)
{
	if (n >= 0)
	{
		ft_putchar('P');
	}
	else
	{
		ft_putchar('N');
	}
}
int main(void)
{                                                        18,0-1         Bot

C Piscine C 01

C Piscine C 01 ex00

- Создайте функцию, которая принимает указатель на 'int' в качестве параметра и задает значение "42" для этого 'int'.

- Вот как это должно быть объявлено:

void ft_ft(int *nbr)
{
    *nbr = 42;
}

C Piscine C 01 ex01

Создайте функцию, которая принимает "указатель на указатель на указатель на
указатель на указатель на указатель на указатель на указатель на указатель на
указатель на указатель" на 'int' в качестве параметра и устанавливает значение
" 42 " для этого 'int'.

- Вот как это должно быть обьявлено:
void ft_ultimate_ft(int *********nbr);

void    ft_ultimate_ft(int *********nbr)
{
    *********nbr = 42;
}

C Piscine C 01 ex02

Создайте функцию, которая меняет местами значения двух целых чисел, адреса
которых вводятся в качестве параметров.

- Вот как это должно быть объявлено:

void ft_swap(int *a, int *b);

void    ft_swap(int *a, int *b)
{
    int    temp;

    temp = *a;
    *a = *b;
    *b = temp;
}

или

void        ft_swap(int *a, int *b)
{
    int t;

    t = *a;
    *a = *b;
    *b = t;
}

C Piscine C 01 ex03

C Piscine C 02

C Piscine C 02 ex00

char *ft_strcpy(char *dest, char *src);

#include    <stdio.h>

char    *ft_strcpy(char *dest, char *src)
{
    int i;

    i = 0;
    while (src[i] != '\0')
    {
        dest[i] = src[i];
        i ++;
    }
    dest[i] = src[i];
    return (dest);
}        

C Piscine C 02 ex01

char *ft_strncpy(char *dest, char *src, unsigned int n)

#include <stdio.h>

char    *ft_strncpy(char *dest, char *src, unsigned int n)
{
    unsigned int    i;

    i = 0;
    while (src[i] != '\0' && i < n)
    {
        dest[i] = src[i];
        ++i;
    }
    while (i < n)
    {
        dest[i] = '\0';
        i++;
    }
    return (dest);
}

C Piscine C 02 ex02

int ft_str_is_alpha(char *str);

#include <stdio.h>

int ft_str_is_alpha(char *str)
{
    int i;

    i = 0;
    while (str[i] != '\0')
    {
        if ((str[i] < 'A' || str[i] > 'Z') && (str[i] < 'a' || str[i] > 'z'))
        {
            return (0);
            break ;
        }
        i++;
    }
    return (1);
}