Главная / Программирование /
Основы программирования на языке C / Тест 1
Основы программирования на языке C — тест 1
Упражнение 1:
Номер 1
Чем обеспечивается надежность программ, написанных на языке Си?
Ответ:
(1) гибкостью языка Си
(2) переносимостью языка Си
(3) мобильностью языка Си
(4) сильной типизацией языка Си
Номер 2
Где, когда и кем был создан язык Си?
Ответ:
(1) язык Си был создан Н. Виртом
(2) язык Си был создан Б. Страуструпом
(3) язык Си был создан в США в 1972 году сотрудником фирмы Bell Labs Денисом Ритчи
(4) язык Си был создан в Японии в 1972 году группой разработчиков фирмы Panasonic под руководством Кена Томпсона
Номер 3
Можно ли на языке Си написать компилятор с языка Си при условии, что в наличии уже имеется другой компилятор с языка Си?
Ответ:
(1) да
(2) нет
(3) только при совместном использовании с C#
(4) только при совместном использовании с C++
Упражнение 2:
Номер 2
Какого типа язык Си?
Ответ:
(1) компилируемого типа
(2) интерпретируемого типа
(3) компилируемо-интерпретируемого типа
(4) интерпретируемого-компилируемого типа
Номер 3
Есть ли у языка Си собственный редактор?
Ответ:
(1) да
(2) нет
(3) только в OС UNIX
(4) только в OС WINDOWS
Упражнение 3:
Номер 1
Чем определяется мобильность языка Си?
Ответ:
(1) тем, что программа, написанная на Си для одной вычислительной системы, может быть перенесена без изменений на другую систему
(2) тем, что программа, написанная на Си для одной вычислительной системы, может быть перенесена с небольшими изменениями или вообще без них на другую
(3) мобильность языка Си определяется его эффективностью
Упражнение 4:
Номер 1
Укажите ошибки и несоответствия стандартам ANSI C в следующем фрагменте: include studio.h void main () { printf("Hello, World!"); }
Ответ:
(1) ошибок нет
(2) ошибка в первой строке — должно быть
#include <stdio.h>
(3) функция main()
объявлена как void
, что не соответствует стандарту ANSI C
Номер 2
Что было бы напечатано, если бы данные операторы являлись частью полной программы? int n; n=5; printf("%d+%d=%d", n, n, n+n);
Ответ:
(1) 5+5=10
(2) 5
(3) 10
(4) 5+5
Номер 3
Что будет напечатано? printf("Что ?n мешает/n вам работать n");
Ответ:
(1)
Что ?
мешает/n вам работать
(2)
Что ?
мешает
вам работать
(3)
Что ? мешает /n вам работать
(4)
Что? мешает вам работать
Упражнение 5:
Номер 1
Будет ли работать программа и если нет - в чем ошибки? #include <stdio.h> int main() { printf("Hello, World!n"); }
Ответ:
(1) программа скомпилируется и отработает, но код завершения будет не определен
(2) программа не скомпилируется из-за синтаксической ошибки
(3) программа не скомпилируется, т.к. не указан возвращаемый функцией тип
Номер 2
Укажите строки, не содержащие ошибок синтаксиса:
Ответ:
(1) printf("Hello, World!"n);
(2) printf("Hello, World!n");
(3) printf(%d Hello, n Hello, World!?);
(4) printf("Hello,n World!n");
Номер 3
Каким символом должен заканчиваться оператор?
Ответ:
(1) символом «точка с запятой» — ‘;’
(2) символом «точка» — ‘.’
(3) символом «запятая» — ‘,’
(4) символом «двоеточие» — ‘:’
Упражнение 6:
Номер 1
Какие символы могут использоваться для комментариев?
Ответ:
(1) /* comment */
(2) { comment }
(3) (* comment *)
Номер 2
Какие имена правильно написаны на языке Си?
Ответ:
(1) Name
(2) name_
(3) +name
(4) {name}
Номер 3
Какие имена переменных правильно написаны на языке Си?
Ответ:
(1) Dinner
(2) 2Dinner
(3) week_days
(4) week_daysssssssssssss
Главная /
Основы программирования на языке C /
Укажите строки, не содержащие ошибок синтаксиса:
Укажите строки, не содержащие ошибок синтаксиса:
вопрос
Правильный ответ:
printf("Hello, World!"n);
printf("Hello, World!n");
printf(%d Hello, n Hello, World!?);
printf("Hello,n World!n");
Сложность курса: Основы программирования на языке C
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Спасибо за оценку!
Комментарии:
Другие ответы на вопросы из темы программирование интуит.
-
#
Как обратиться к элементу массива структур?
-
#
Какой процесс называется повышением типа?
-
#
Какое из выражений правильное?
-
#
Что будет напечатано, если i примет значение 3 и будет убран оператор break в операторе case 3:?
switch(i)
{
case 1: printf(«Попытаемся проанализировать, что сейчас происходит: n»); break;
case 2: printf(«расчистка площади под что-то новое в экономике, «); break;
case 3: printf(«где могут проклюнуться ростки этого нового, «); break;
case 4: printf(«или это разрушение, n»);break;
default: printf(«болото, и ничего больше?n»);
} -
#
Может ли функция не иметь аргументов?
Всего: 17 1–17
Добавить в вариант
Задания Д24 C1 № 5532
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG INPUT N sum = 0 WHILE N >= 9 digit = N MOD 10 sum = sum + digit N = N 10 WEND PRINT sum END |
var N: longint; digit, sum: integer; begin readln(N); sum := 0; while N >= 9 do begin digit := N mod 10; sum := sum + digit; N := N div 10; end; writeln(sum); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N; int digit, sum; cin >> N; sum = 0; while (N >= 9) { digit = N % 10; sum = sum + digit; N = N / 10; } cout « sum « endl; } |
алг нач цел N, digit, sum ввод N sum := 0 нц пока N >= 9 digit := mod(N, 10) sum := sum + digit N := div(N, 10) кц вывод sum кон |
Python | |
n = int(input()) sum = 0 while n >= 9: digit = n % 10 sum += digit n //=10; print(sum) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 352.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
3. Укажите одно число для которого эта программа будет работать верно.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Дальний Восток. Вариант 3.
Задания Д24 C1 № 5468
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG DIM product AS LONG INPUT N product = N mod 10 WHILE N >= 10 digit = N MOD 10 product = product*digit N = N 10 WEND PRINT product END |
var N, product: longint; digit: integer; begin readln(N); product := N mod 10; while N >= 10 do begin digit := N mod 10; product := product*digit; N := N div 10; end; writeln(product); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N, product; int digit; cin >> N; product = N % 10; while (N >= 10) { digit = N % 10; product = product*digit; N = N / 10; } cout << product; } |
алг нач цел N, digit, product ввод N product := mod(N, 10) нц пока N >= 10 digit := mod(N, 10) product := product*digit N := div(N, 10) кц вывод product кон |
Python | |
n = int(input()) product = n % 10 while n >= 10: digit = n % 10 product = product*digit n //= 10 print(product) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 532.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 1.
Задания Д24 C1 № 5500
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG INPUT N max_digit = 9 WHILE N > 9 digit = N MOD 10 IF max_digit < digit THEN max_digit = digit END IF N = N 10 WEND PRINT max digit END |
var N: longint; digit, max_digit: integer; begin readln(N); max_digit := 9; while N > 9 do begin digit := N mod 10; if max_digit < digit then max_digit := digit; N := N div 10; end; writeln(max_digit); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N; int digit, max_digit; cin >> N; max_digit = 9; while (N > 9) { digit = N % 10; if (max_digit < digit) max_digit = digit; N = N /10; } cout « max_digit « endl; } |
алг нач цел N, digit, max_digit ввод N max_digit := 9 нц пока N > 9 digit := mod(N, 10) если max_digit < digit то max_digit := digit все N := div(N, 10) кц вывод max_digit кон |
Python | |
n = int(input()) max_digit = 9 while n > 9: digit = n % 10 if max_digit < digit: max_digit = digit n //= 10; print(max_digit) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 738.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 1., ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 2., ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 3., ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 4.
Задания Д24 C1 № 5596
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG DIM product AS LONG INPUT N product = 0 WHILE N >= 10 digit = N MOD 10 product = product*digit N = N 10 WEND PRINT product END |
var N, product: longint; digit: integer; begin readln(N); product := 0; while N >= 10 do begin digit := N mod 10; product := product*digit; N := N div 10; end; writeln(product); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N, product; int digit; cin >> N; product = 0; while (N >= 10) { digit = N % 10; product = product*digit; N = N / 10; } cout << product; } |
алг нач цел N, digit, product ввод N product := 0 нц пока N >= 10 digit := mod(N, 10) product := product*digit N := div(N, 10) кц вывод product кон |
Python | |
n = int(input()) product = 0 while n >= 10: digit = n % 10 product = product*digit n //= 10 print(product) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 429.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 2.
Задания Д24 C1 № 5692
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG INPUT N max_digit = 10 WHILE N >= 10 digit = N MOD 10 IF max_digit < digit THEN max_digit = digit END IF N = N 10 WEND PRINT max_digit END |
var N: longint; digit, max_digit: integer; begin readln(N); max_digit := 10; while N >= 10 do begin digit := N mod 10; if max_digit < digit then max_digit := digit; N := N div 10; end; writeln(max_digit); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main () { long int N; int digit, max_digit; cin >> N; max digit = 10; while (N >= 10) { digit = N % 10; if (max_digit < digit) max_digit = digit; N = N / 10; } cout « max_digit « endl; } |
алг нач цел N, digit, max_digit ввод N max_digit := 10 нц пока N >= 10 digit := mod(N, 10) если max_digit < digit то max_digit := digit все N := div(N, 10) кц вывод max_digit кон |
Python | |
n = int(input()) max_digit = 10 while n >= 10: digit = n % 10 if max_digit < digit: max_digit = digit n //= 10 print(max_digit) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 528.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 5.
Задания Д24 C1 № 6014
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
---|---|
DIM N AS LONG INPUT N max_digit = 9 WHILE N >= 10 digit = N MOD 10 IF digit > max_digit THEN max_digit = digit END IF N = N 10 WEND PRINT max_digit END |
var N: longint; digit, max_digit: integer; begin readln(N); max_digit := 9; while N >= 10 do begin digit := N mod 10; if digit > max_digit then max_digit := digit; N := N div 10; end; writeln(max_digit); end. |
Си++ | Алгоритмический |
#include <iostream> using namespace std; int main() { long int N; int digit, max_digit; cin >> N; max_digit = 9; while (N >= 10) { digit = N % 10; if (digit > max_digit) max_digit = digit; N = N /10; } cout « max_digit « endl; } |
алг нач цел N, digit, max_digit ввод N max_digit := 9 нц пока N >= 10 digit := mod(N, 10) если digit > max_digit то max_digit := digit все N := div(N, 10) кц вывод max_digit кон |
Python | |
n = int(input()) max_digit = 9 while n >= 10: digit = n % 10 if digit > max_digit: max_digit = digit n //= 10 print(max_digit) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 423.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: Демонстрационная версия ЕГЭ—2014 по информатике.
Задания Д24 C1 № 5372
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
---|---|
DIM N AS LONG INPUT N sum = 1 WHILE N > 1 N = N 10 sum = sum + 1 WEND PRINT sum END |
var N: longint; sum: integer; begin readln(N); sum := 1; while N > 1 do begin N := N div 10; sum := sum + 1; end; writeln(sum); end. |
Си++ | Алгоритмический |
#include <iostream> using namespace std; int main() { long int N; int sum; cin >> N; sum = 1; while (N > 1) { N = N /10; sum = sum + 1; } cout « sum « endl; } |
алг нач цел N, sum ввод N sum := 1 нц пока N > 1 N := div(N, 10) sum := sum + 1 кц вывод sum кон |
Python | |
n = int(input()) sum = 1 while n > 1: n //= 10 sum += 1 print(sum) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 938.
2. Укажите одно число для которого эта программа будет работать верно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Дальний Восток. Вариант 1.
Задания Д24 C1 № 6199
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма чётных цифр в десятичной записи этого числа или 0, если чётных цифр в записи нет. Ученик написал такую программу:
Бейсик | Паскаль |
---|---|
DIM N AS LONG INPUT N S = 0 WHILE N > 1 IF N MOD 2 = 0 S = N MOD 10 END IF N = N 10 WEND PRINT S END |
var N: longint; s: integer; begin readln(N); s := 0; while N > 1 do begin if N mod 2 = 0 then begin s := N mod 10; end; N := N div 10; end; write(s); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N; int s; cin >> N; s = 0; while (N > 1) { if (N%2 == 0) { s = N % 10; } N = N / 10; } cout « s « endl; } |
алг нач цел N, s ввод N s := 0 нц пока N > 1 если mod(N,2) = 0 то s := mod(N,10) все N := div(N,10) кц вывод s кон |
Python | |
N = int(input()) s = 0 while N > 1: if N % 2 == 0: s = N % 10 N //= 10 print(s) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1984.
2.Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
Задания Д24 C1 № 7796
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество единиц в двоичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на пяти языках программирования.)
Бейсик | Python |
---|---|
INPUT x cnt = 0 WHILE x > 0 cnt = cnt + 1 x = x MOD 2 WEND PRINT cnt END |
x = int(input()) cnt = 0 while x > 0: cnt = cnt+1 x = x % 2 print(cnt) |
Паскаль | Алгоритмический язык |
var x,cnt: integer; begin readln(x); cnt := 0; while x > 0 do begin cnt:=cnt + 1; x := x mod 2 end; writeln(cnt) end. |
алг нач цел x, cnt ввод x cnt := 0 нц пока x > 0 cnt := cnt+1 x := mod(x, 2) кц вывод cnt кон |
Си++ | |
#include <iostream> using namespace std; int main() { int x,cnt; cin >> x; cnt = 0; while (x > 0) { cnt = cnt + 1; x = x % 2; } cout « cnt « endl; } |
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 6.
2. Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Задания Д24 C1 № 5884
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG INPUT N min_digit = 9 WHILE N >= 10 digit = N MOD 10 IF digit < min_digit THEN digit = min_digit END IF N = N 10 WEND PRINT min_digit END |
var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 9; while N >= 10 do begin digit := N mod 10; if digit < min_digit then digit := min_digit; N := N div 10; end; writeln(min_digit); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N; int digit, min_digit; cin >> N; min_digit = 9; while (N >= 10) { digit = N % 10; if (digit < min_digit) digit = min_digit; N = N / 10; } cout << min_digit << endl; } |
алг нач цел N, digit, min_digit ввод N min_digit := 9 нц пока N >= 10 digit := mod(N, 10) если digit < min_digit то digit := min_digit все N := div(N, 10) кц вывод min_digit кон |
Python | |
n = int(input()) min_digit = 9 while n >= 10: digit = n % 10 if digit < min_digit: digit = min_digit n //= 10 print(min_digit) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 823.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 2.
Задания Д24 C1 № 5948
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG INPUT N min_digit = 0 WHILE N > 0 digit = N MOD 10 IF digit < min_digit THEN min_digit = digit END IF N = N 10 WEND PRINT digit END |
var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 0; while N > 0 do begin digit := N mod 10; if digit < min_digit then min_digit := digit; N := N div 10; end; writeln(digit); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N; int digit, min_digit; cin >> N; min_digit = 0; while (N > 0) { digit = N % 10; if (digit < min_digit) min_digit = digit; N = N / 10; } cout « digit « endl; } |
алг нач цел N, digit, min_digit ввод N min_digit := 0 нц пока N > 0 digit := mod(N, 10) если digit < min_digit то min_digit := digit все N := div(N, 10) кц вывод digit кон |
Python | |
n = int(input()) min_digit = 0 while n > 0: digit = n % 10 if digit < min_digit: min_digit = digit n //= 10 print(digit) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 862.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 4.
Задания Д24 C1 № 9659
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 109, и выводится произведение его цифр. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
---|---|
DIM A AS LONG DIM pr AS LONG INPUT A pr = 0 WHILE A >= 10 pr = pr * (A MOD 10) A = A 10 WEND PRINT pr END |
var A,pr: longint; begin readln(A); pr := 0; while A >= 10 do begin pr:=pr * (A mod 10); A := A div 10; end; writeln(pr); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int A,pr; cin >> A; pr = 0; while (A >= 10) { pr = pr * (A%10); A = A /10; } cout « pr « endl; } |
алг нач цел A, pr ввод A pr := 0 нц пока A >= 10 pr := pr * mod (A, 10) A := div(A, 10) кц вывод pr кон |
Python | |
A = int(input()) pr = 0 while A >= 10: pr = pr * (A % 10) A //= 10 print(pr) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 123.
2. Найдите все ошибки в этой программе (их может быть одна или несколько).
Для каждой ошибки:
а) выпишите строку, в которой сделана ошибка;
б) укажите, как исправить ошибку: приведите правильный вариант строки.
Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Задания Д24 C1 № 5436
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования).
Бейсик | Паскаль |
---|---|
DIM N AS LONG INPUT N sum = 0 WHILE N >= 9 N = N 10 sum = sum + 1 WEND PRINT sum END |
var N: longint; sum: integer; begin readln(N); sum := 0; while N >= 9 do begin N := N div 10; sum := sum + 1; end; writeln(sum); end. |
Си++ | Алгоритмический |
#include <iostream> using namespace std; int main() { long int N; int sum; cin >> N; sum = 0; while (N >= 9) { N = N / 10; sum = sum + 1; } cout « sum « endl; } |
алг нач цел N, sum ввод N sum := 0 нц пока N >= 9 N := div(N, 10) sum := sum + 1 кц вывод sum кон |
Python | |
N = int(input()) sum = 0 while N >= 9: N //= 10 sum += 1 print(sum) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 584.
2. Укажите одно число для которого эта программа будет работать верно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Дальний Восток. Вариант 4.
Задания Д24 C1 № 5852
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бэйсик | Паскаль |
---|---|
DIM N AS LONG INPUT N min_digit = 0 WHILE N > 0 digit = N MOD 10 IF digit > min_digit THEN min_digit = digit END IF N = N 10 WEND PRINT min_digit END |
var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 0; while N > 0 do begin digit := N mod 10; if digit > min_digit then min_digit := digit; N := N div 10; end; writeln(min_digit); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main () { long int N; int digit, min_digit; cin >> N; min_digit = 0; while (N > 0) { digit = N % 10; if (digit > min_digit) min_digit = digit; N = N / 10; } cout « min_digit « endl; } |
алг нач цел N, digit, min_digit ввод N min_digit := 0 нц пока N > 0 digit := mod(N, 10) если digit > min_digit то min_digit := digit все N := div(N, 10) кц вывод min_digit кон |
Python | |
N = int(input()) min_digit = 0 while N > 0: digit = N % 10 if digit > min_digit: min_digit = digit N //= 10; print(min_digit) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 461.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 1.
Задания Д24 C1 № 5980
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
---|---|
DIM N AS LONG INPUT N min_digit = 9 WHILE N >= 10 digit = N MOD 10 IF digit < min_digit THEN min_digit = digit END IF N = N 10 WEND PRINT digit END |
var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 9; while N >= 10 do begin digit := N mod 10; if digit < min_digit then min_digit := digit; N := N div 10; end; writeln(digit); end. |
Си++ | Алгоритмический |
#include <iostream> using namespace std; int main() { long int N; int digit, min_digit; cin >> N; min_digit = 9; while (N >= 10) { digit = N % 10; if (digit < min_digit) min_digit = digit; N = N / 10; } cout « digit « endl; } |
алг нач цел N, digit, min_digit ввод N min_digit := 9 нц пока N >= 10 digit := mod(N, 10) если digit < min_digit то min_digit := digit все N := div(N, 10) кц вывод digit кон |
Python | |
N = int(input()) min_digit = 9 while N >= 10: digit = N % 10 if digit < min_digit: min_digit = digit N //= 10 print(digit) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 547.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 5.
Задания Д24 C1 № 7769
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество значащих цифр в двоичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на пяти языках программирования.)
Бейсик | Python |
---|---|
INPUT x cnt = 0 WHILE x > 0 cnt = cnt + x MOD 2 x = x 10 WEND PRINT cnt END |
x = int(input()) cnt = 0 while x > 0: cnt = cnt+x % 2 x = x // 10 print(cnt) |
Паскаль | Алгоритмический язык |
var x,cnt: integer; begin readln(x); cnt := 0; while x > 0 do begin cnt:=cnt + x mod 2; x := x div 10 end; writeln(cnt); end. |
алг нач цел x, cnt ввод x cnt := 0 нц пока x > 0 cnt := cnt+mod(x,2) x := div(x, 10) кц вывод cnt кон |
Си++ | |
#include <iostream> using namespace std; int main() { int x,cnt; cin >> x; cnt = 0; while (x > 0) { cnt = cnt + x%2; x = x /10; } cout « cnt « endl; } |
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 15.
2. Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк.
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Задания Д24 C1 № 9705
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 109, и выводится количество цифр в десятичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
---|---|
DIM A AS LONG INPUT A cnt = 0 WHILE A > 1 cnt = cnt + A MOD 10 A = A 10 WEND PRINT cnt END |
var A: longint; cnt: integer; begin readln(A); cnt := 0; while A > 1 do begin cnt:=cnt + A mod 10; A := A div 10; end; writeln(cnt); end. |
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int A; int cnt; cin >> A; cnt = 0; while (A > 1) { cnt = cnt + A%10; A = A /10; } cout « cnt « endl; } |
алг нач цел A, cnt ввод A cnt := 0 нц пока A > 1 cnt := cnt + mod(A, 10) A := div(A, 10) кц вывод cnt кон |
Python | |
A = int(input()) cnt = 0 while A > 1: cnt += A % 10 A //= 10 print(cnt) |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 111.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
а) выпишите строку, в которой сделана ошибка;
б) укажите, как исправить ошибку: приведите правильный вариант строки.
Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Всего: 17 1–17
When there’s an error in a SEDE query, you just get the error message.
Incorrect syntax near ‘*’.
This can leave me guessing as to which one of the *
in my query is causing the error.
SSMS seems to be able to give me a line number, so I guess SQL Server is able to provide this info.
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near ‘5’.
Can this be added?
animusonStaffMod
187k37 gold badges557 silver badges833 bronze badges
asked Sep 19, 2014 at 15:37
8
I fully agree with this feature request, but meanwhile, I found a workaround: use the developer tools of your browser to inspect the XHRs. The JSON response from the server does contain the line number:
answered Jul 24, 2016 at 13:47
GlorfindelModGlorfindel
236k59 gold badges579 silver badges1200 bronze badges
I’ve created this pull request that adds the linenumber in front of the error message when the linenumber is present in the response payload.
Do note that the linenumber is as «accurate» as it would be if you run the sql script in SQL Server Management Studio. That accuracy won’t get improved/fixed.
Pull Requests have been been reviewed and approved by SE devs. This is now deployed and live in rev 2020.12.13.80.
answered Sep 6, 2020 at 20:59
renerene
83.9k16 gold badges223 silver badges465 bronze badges
You must log in to answer this question.
Not the answer you’re looking for? Browse other questions tagged
.
Not the answer you’re looking for? Browse other questions tagged
.
When there’s an error in a SEDE query, you just get the error message.
Incorrect syntax near ‘*’.
This can leave me guessing as to which one of the *
in my query is causing the error.
SSMS seems to be able to give me a line number, so I guess SQL Server is able to provide this info.
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near ‘5’.
Can this be added?
animusonStaffMod
187k37 gold badges557 silver badges833 bronze badges
asked Sep 19, 2014 at 15:37
8
I fully agree with this feature request, but meanwhile, I found a workaround: use the developer tools of your browser to inspect the XHRs. The JSON response from the server does contain the line number:
answered Jul 24, 2016 at 13:47
GlorfindelModGlorfindel
236k59 gold badges579 silver badges1200 bronze badges
I’ve created this pull request that adds the linenumber in front of the error message when the linenumber is present in the response payload.
Do note that the linenumber is as «accurate» as it would be if you run the sql script in SQL Server Management Studio. That accuracy won’t get improved/fixed.
Pull Requests have been been reviewed and approved by SE devs. This is now deployed and live in rev 2020.12.13.80.
answered Sep 6, 2020 at 20:59
renerene
83.9k16 gold badges223 silver badges465 bronze badges
You must log in to answer this question.
Not the answer you’re looking for? Browse other questions tagged
.
Not the answer you’re looking for? Browse other questions tagged
.
#статьи
- 10 фев 2023
-
0
Гайд по работе с простым и популярным языком разметки, на котором программисты пишут документацию, а блогеры форматируют посты.
Иллюстрация: Polina Vari для Skillbox Media
Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.
Язык разметки Markdown широко распространён в вебе. На нём пишут readme-файлы и документацию, а его принципы работы используют для оформления сообщений и публикаций в мессенджерах и социальных сетях.
Markdown легко конвертируется в HTML, открывается во всех текстовых редакторах и легко читается даже в виде исходного кода. При этом писать на нём куда проще, чем на других языках разметки: HTML, XML, TeX и так далее.
Гайд по синтаксису языка разметки Markdown:
- Диалекты и редакторы
- Параграфы и разрывы строк (paragraphs and line breaks)
- Заголовки (headings)
- Выделение текста (emphasis)
- Курсив (italic)
- Жирный (bold)
- Жирный курсив (bold and italic)
- Зачёркнутый (strikethrough)
- Подчёркнутый (underline)
- Разделители (horizontal rules)
- Цитаты (blockquotes)
- Списки (lists)
- Нумерованные (ordered)
- Ненумерованные (unordered)
- Чекбоксы (checkboxes)
- Вложенные (nested)
- Другие элементы внутри списков
- Ссылки (links)
- Картинки (images)
- Вставка кода (code)
- Таблицы (tables)
- Экранирование (escaping characters)
- Как использовать Markdown в мессенджерах
- Резюмируем
Базовым Markdown уже мало кто пользуется. Зато у него существуют спецификации и диалекты, которые добавляют в язык новые функции: встраивание HTML-тегов, создание таблиц и чекбоксов, зачёркивание текста, разные варианты переноса строки.
Разные редакторы Markdown могут поддерживать или не поддерживать часть новых функций — учтите это при выборе платформы, на которой будете работать.
Самый распространённый Markdown — диалект GitHub Flavored Markdown, основанный на спецификации CommonMark. В этой статье мы пользуемся редактором Markdown Editor, который поддерживает практически все инструменты этой парочки (кроме чекбоксов).
Чтобы поделить текст на параграфы, между ними нужно оставить пустую строку. Строка считается пустой, даже если в ней есть пробелы и табуляции. Если же строки находятся рядом, то они автоматически склеиваются в одну.
Первый параграф Второй параграф Продолжение второго параграфа
Скриншот: Skillbox Media
Для переноса строки внутри одного параграфа есть три метода:
- поставить в конце строки два или больше пробела ;
- поставить в конце строки обратную косую черту ;
- использовать HTML-тег <br>.
Перенос с помощью пробелов Перенос с помощью обратного слеша Перенос с помощью тега <br> Последняя строка
Скриншот: Skillbox Media
Обратите внимание, что у каждого из методов есть свои недостатки:
- пробелы в конце строки бывает трудно заметить, и это может запутать читателя;
- обратный слеш вводится в стандарте CommonMark и может поддерживаться не всеми редакторами;
- HTML-теги в Markdown также поддерживаются не всеми редакторами.
В синтаксисе Markdown есть шесть уровней заголовков: от H1 (самого большого) до H6 (самого маленького). Для их выделения используют решётки #, при этом есть несколько тонкостей:
- решётки можно ставить как перед заголовком, так и с двух сторон от него (на уровень заголовка влияют только те #, которые находятся перед ним);
- количество решёток соответствует уровню заголовка: одна для первого уровня, две для второго и так далее;
- между решёткой и текстом ставится пробел.
# Заголовок первого уровня ## Заголовок второго уровня ## ### Заголовок третьего уровня #### Заголовок четвёртого уровня # ##### Заголовок пятого уровня ############ ###### Заголовок шестого уровня
Скриншот: Skillbox Media
У заголовков первого и второго уровня есть альтернативный способ выделения: на следующей строке после них нужно поставить знаки равенства = или дефисы —. Вот несколько правил:
- знак = применяется для заголовков H1;
- дефис применяется для заголовков H2;
- если в одной строке поставить оба знака, то работать ничего не будет;
- можно ставить любое количество знаков, и на тип заголовка это не повлияет;
- между заголовком и знаками не должно быть пустых строк.
Заголовок первого уровня = Заголовок первого уровня ========= Заголовок второго уровня - Заголовок второго уровня ----------
Скриншот: Skillbox Media
Чтобы изменить начертание текста, нужно выделить его с двух сторон спецсимволами следующим образом: <спецсимвол>текст<спецсимвол>.
Для выделения текста курсивом нужно использовать одну звёздочку * или нижнее подчёркивание _.
*Текст курсивом* _Текст курсивом_
Для выделения текста жирным нужно использовать две звёздочки ** или два нижних подчёркивания __.
**Жирный текст** __Жирный текст__
Скриншот: Skillbox Media
Для выделения текста сразу обоими стилями нужно использовать три звёздочки *** или три нижних подчёркивания ___.
***Текст жирным курсивом*** ___Текст жирным курсивом___
Скриншот: Skillbox Media
Обратите внимание, что если вы хотите выделить фрагмент внутри слова, то это корректно сработает только при использовании звёздочек.
Кор*рек*тно, кор**рек**тно, кор***рек***тно Некор_рек_тно, некор__рек__тно, некор___рек___тно
Скриншот: Skillbox Media
Чтобы зачеркнуть текст, нужно использовать две тильды ~~. Такая опция есть только в диалекте GitHub Flavored Markdown.
~~Зачёркнутый текст~~
Скриншот: Skillbox Media
В синтаксисе Markdown нет встроенного способа подчеркнуть текст. Но если ваш редактор поддерживает HTML, то можно использовать теги:
<u>Подчёркнутый текст</u>
Скриншот: Skillbox Media
Чтобы оформить горизонтальный разделитель, нужно поставить три или больше специальных символа: звёздочки *, дефиса — или нижних подчёркивания _. Они должны находиться на отдельной строке, и между ними можно ставить любое количество пробелов и табуляций.
Если ваш редактор поддерживает HTML-теги, то для разметки можно также использовать тег <hr>.
*** --- ___ * * **
Скриншот: Skillbox Media
Чтобы параграф отобразился как цитата, нужно поставить перед ним закрывающую угловую скобку >.
> Оформление цитатой последовательных строк внутри одного параграфа
Скриншот: Skillbox Media
Внутрь одного блока цитаты можно поместить сразу несколько параграфов и использовать любые элементы оформления. Например, заголовки и другие цитаты. Чтобы сделать это, нужно поместить закрывающую угловую скобку перед началом каждой строки.
> # Заголовок > Первый параграф > > Второй параграф > > > Вложенная цитата > > > Цитата третьего уровня > > Продолжение основной цитаты
Скриншот: Skillbox Media
В синтаксисе Markdown есть несколько видов списков. Для их оформления перед каждым пунктом нужно поставить подходящий тег и отделить его от текста пробелом.
Для создания нумерованного списка перед пунктами нужно поставить число с точкой. При этом нумерация в разметке — ленивая. Неважно, какие именно числа вы напишете: Markdown пронумерует список автоматически.
1. Первый пункт 2. Второй пункт 3. Третий пункт 1. Первый пункт 1. Второй пункт 1. Третий пункт 1. Первый пункт 73. Второй пункт 5. Третий пункт
Скриншот: Skillbox Media
Список можно начинать и не с единицы. Для нумерации важно только то число, которое стоит перед первым пунктом.
27. Первый пункт 27. Второй пункт 27. Третий пункт
Скриншот: Skillbox Media
Обратите внимание, что между двумя нумерованными списками, идущими подряд, нужно отбить две пустые строки. Если отбить только одну, то Markdown воспримет два списка как один. Некоторые редакторы в таком случае увеличивают интервал между пунктами.
1. Первый пункт 2. Второй пункт 3. Третий пункт 1. Четвёртый пункт 2. Пятый пункт 3. Шестой пункт
Скриншот: Skillbox Media
Для создания ненумерованного списка нужно поставить перед каждым пунктом звёздочку *, дефис — или плюс +.
* Первый пункт * Второй пункт * Третий пункт - Первый пункт - Второй пункт - Третий пункт + Первый пункт + Второй пункт + Третий пункт
Скриншот: Skillbox Media
Обратите внимание, что Markdown относит к разным спискам пункты, перед которыми стоят разные маркеры. Даже несмотря на то, что мы не оставляем пустых строк между списками.
Если же два списка идут подряд, а перед их пунктами стоят одинаковые маркеры, тогда между ними нужно отбить две пустые строки (как в случае с нумерованными списками).
Чтобы сделать чекбоксы, нужно использовать маркированный список, но между маркером и текстом поставить [x] для отмеченного пункта и [] — для неотмеченного.
Чекбоксы доступны в диалекте GitHub Flavored Markdown (тот самый, который умеет зачёркивать текст) и поддерживаются не всеми редакторами Markdown. Например, нам для демонстрации примера пришлось открывать другой.
- [x] Отмеченный пункт - [ ] Неотмеченный пункт
Скриншот: Skillbox Media
Чтобы создать вложенный список, нужно поставить перед его пунктами табуляцию или несколько пробелов. В Markdown одна табуляция соответствует четырём пробелам.
Список одного вида можно вкладывать в любой другой.
1. Пункт 1. Подпункт 1. Подподпункт - Пункт - Подпункт - Подподпункт 1. Пункт - Подпункт * Подподпункт + Пункт 1. Подпункт - Пункт - [x] Отмеченный подпункт - [ ] Неотмеченный подпункт 1. Подподпункт
Скриншот: Skillbox Media
На самом деле количество пробелов, которые нужно поставить для корректного отступа, рассчитывается чуть сложнее. Берётся количество символов в маркере (один для *, — и +, два для 1., три для 10.) и к нему прибавляется любое число от 1 до 4.
Таким образом, если в маркере 1 символ, нужно поставить от 2 до 5 пробелов, если 2 символа — от 3 до 6, если 3 символа — от 4 до 7.
В пункты списков можно добавлять другие элементы оформления. Например, параграфы или цитаты. Для этого нужно сделать отступ, как если бы вы добавляли вложенный список.
1. Первый пункт > Цитата внутри первого пункта 1. Второй пункт Параграф внутри второго пункта 1. Третий пункт
Скриншот: Skillbox Media
Самый лёгкий способ поместить ссылку в Markdown — заключить её в угловые скобки. Несмотря на простоту, он не является основным и был добавлен только в спецификации CommonMark.
<https://skillbox.ru/media/code/>
Скриншот: Skillbox Media
Чтобы оформить ссылкой часть текста, используется такой синтаксис: [текст](ссылка). Можно сделать всплывающую подсказку при наведении курсора. Для этого в круглых скобках после ссылки нужно поставить пробел и написать текст подсказки в кавычках.
[Skillbox Media](https://skillbox.ru/media/) без подсказки [Skillbox Media](https://skillbox.ru/media/ "Всплывающая подсказка") с подсказкой
Скриншот: Skillbox Media
Ещё один способ оформить ссылку — справочный. Он работает как сноски в книгах: [текст][имя сноски]. При таком способе организации ссылок в конце документа нужно также написать и оформить саму сноску: [имя сноски]: ссылка. При желании после ссылки можно добавить подсказку — точно так же, как в предыдущем методе.
Имя сноски может быть любым сочетанием символов: цифрами, буквами и даже знаками препинания. На одну и ту же сноску в тексте можно ссылаться сколько угодно раз.
Ссылки, оформленные справочным методом, выглядят и работают точно так же, как и в предыдущем способе. Сами сноски в отформатированном документе не отображаются.
[Skillbox Media][1] [Раздел «Код»][code] [1]: https://skillbox.ru/media "Всплывающая подсказка" [code]: https://skillbox.ru/media/code/
Скриншот: Skillbox Media
Изображения в Markdown оформляются по принципу, схожему с принципом оформления ссылкок, только перед квадратными скобками нужно поставить восклицательный знак: . Здесь также можно сделать всплывающую подсказку.

Скриншот: Skillbox Media
Можно использовать и справочный метод: ![текст][имя сноски]. Сноски оформляются так же, как и в ссылках: [имя сноски]: путь к изображению — в них тоже можно добавлять подсказки.
![Изображение][1] [1]: https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Markdown-mark.svg/1920px-Markdown-mark.svg.png "Логотип Markdown"
Такая разметка выведет тот же результат, что и предыдущая.
В Markdown есть несколько способов выделить исходный код:
- если надо отобразить фрагмент кода внутри строки с каким-то текстом, нужно с двух сторон выделить этот код одним или несколькими обратными апострофами (`; их ещё называют бэктиками);
- чтобы выделить фрагмент из нескольких строк, нужно с двух сторон выделить его тремя обратными апострофами;
- также перед фрагментом кода можно поставить табуляцию или четыре пробела, при этом предыдущая строка должна быть пустой.
Функция `print (x)` выводит содержимое переменной ```x```. ``` #include <stdio.h> int main() { printf("Hello, World!"); return 0; } ``` let x = 12; let y = 6; console.log(x + y);
Скриншот: Skillbox Media
Если обрамлять код тремя обратными апострофами, то после первой тройки можно указать язык программирования — тогда Markdown правильно подсветит элементы кода.
```python if x > 0: print (x) else: print ('Hello, World!') ``` ```c #include <stdio.h> int main() { printf("Hello, World!"); return 0; } ``` ```javascript let x = 12; let y = 6; console.log(x + y); ```
Скриншот: Skillbox Media
Возможность вставлять блоки кода тремя обратными апострофами появилась в спецификации CommonMark, но там не указан список псевдонимов: как правильно называть языки, чтобы Markdown понял, о чём речь.
Поэтому каждая реализация ведёт свой собственный список языков и их псевдонимов. Так как их очень много, да ещё и новые время от времени добавляются, то удобных таблиц обычно не делают. Предлагают сразу ознакомиться с конфигурационным файлом.
Вот такой список языков, например, поддерживает диалект GitHub Flavored Markdown.
В уже упомянутом выше диалекте GitHub Flavored Markdown (и некоторых других тоже) есть возможность оформлять таблицы. Столбцы разделяются вертикальными линиями |, а строка с шапкой отделяется от остальных дефисами —, которых можно ставить сколько угодно.
|Столбец 1|Столбец 2|Столбец 3| |-|--------|---| |Длинная запись в первом столбце|Запись в столбце 2|Запись в столбце 3| |Кртк зпс| |Слева нет записи|
Скриншот: Skillbox Media
Чтобы выровнять весь столбец по правому краю, в строке с дефисами сразу после дефисов можно поставить двоеточие :. Чтобы выровнять содержимое по центру, надо поставить двоеточия с обеих сторон.
|Столбец 1|Столбец 2|Столбец 3| |:-|:-:|-:| |Равнение по левому краю|Равнение по центру|Равнение по правому краю| |Запись|Запись|Запись|
Скриншот: Skillbox Media
Многие символы в Markdown выполняют роль служебных. Если они встречаются в вашем тексте сами по себе, то для корректного отображения их стоит экранировать (иначе они просто не только не отобразятся сами, но и добавят вашему тексту какое-нибудь ненужное форматирование). Для этого перед ними ставится обратная косая черта .
Вот список символов, которые нужно экранировать: `*_{}[]<>()#+-.! |. Делать это постоянно необязательно — достаточно ставить экран только в тех случаях, когда Markdown может воспринять эти символы как служебные. Например, если строка начинается с символа #, то экранировать её надо — потому что программа может решить, что вы хотите сделать заголовок. А вот если решётка находится где-то в центре строки, то экранировать ничего не надо — редактор поймёт, что тут она просто часть текста.
Как мы уже писали, принципы Markdown используются при разметке текста во многих мессенджерах. Обычно он используется для выделения текста, при этом синтаксис у каждой платформы свой.
Жирный:
- Telegram и Discord — **две звёздочки с двух сторон**;
- WhatsApp и Viber — *одна звёздочка с двух сторон*.
Курсив:
- Telegram — __два нижних подчёркивания с двух сторон__;
- WhatsApp и Viber — _одно нижнее подчёркивание с двух сторон_;
- Discord — *одна звёздочка с двух сторон* или _одно нижнее подчёркивание с двух сторон_.
Подчёркнутый:
- Discord — __два нижних подчёркивания с двух сторон__.
Зачёркнутый:
- WhatsApp и Viber — ~одна тильда с двух сторон~;
- Discord — ~~две тильды с двух сторон~~.
Моноширинный (используется для вставки кода):
- Telegram, WhatsApp, Viber и Discord — «`три обратных апострофа с двух сторон«`;
- в Discord точно так же, как и в Markdown, можно указывать язык программирования для подсветки синтаксиса.
Спойлер:
- Telegram и Discord — ||две вертикальные черты с двух сторон||.
Этой шпаргалки по разметке Markdown будет достаточно для создания полноценного документа. А там, где встроенных возможностей языка не хватит, можно встраивать HTML-код.
Синтаксис Markdown простой, гибкий и нетребовательный. У него есть несколько реализаций, благодаря которым в нём можно:
- выделять параграфы и переносить строки,
- оформлять заголовки,
- изменять начертание текста,
- ставить горизонтальные разделители,
- выделять цитаты,
- составлять списки,
- прикреплять ссылки,
- вставлять картинки и исходный код,
- делать таблицы.
И ещё одно небольшое примечание. Если вы форматируете текст с помощью HTML-тегов или форматируете код тремя обратными апострофами, то Markdown будет автоматически пытаться искать закрывающий символ — то есть будет придумывать, куда его поставить, даже если у вас его нет. Остальные симметричные символы (*_~`) работают в пределах одной строки.
Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.
Участвовать
Школа дронов для всех
Учим программировать беспилотники и управлять ими.
Узнать больше