Школа 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 - назначить права
И запомните святые заклинания
- git init - инициализация гита c
- git add * - все в гит
- git commit - комит на все загруженное
- 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 BotC 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);
}