Задача 1. Написать программу, которая принимает с клавиатуры число N и вычисляет сумму 1/20+1/21+1/22+…+1/2N.
#include <stdio.h>
int main() {
int N;
printf("Введите число N:\n");
scanf("%d", &N);
float result = 0;
int denominator = 1;
for (int i=0; i<=N; i++) {
result += (float) 1/denominator;
denominator *= 2;
}
printf("Результат равен %g\n", result);
return 0;
}
Задача 2. Написать программу, которая принимает с клавиатуры число N и выводит N первых членов последовательности Фибоначчи. Последовательность Фибоначчи задается следующими соотношениями: a0=0, a1=1 и an=an-1+an-2. Другими словами, очередной элемент этой последовательности равен сумме двух предыдущих.
#include <stdio.h>
int main() {
int N;
printf("Введите число N:\n");
scanf("%d", &N);
int a0 = 0;
int a1 = 1;
for (int i=0; i<=N; i++) {
int a2 = a0+a1;
printf("%d ", a2);
a0=a1;
a1=a2;
}
return 0;
}
Задача 3. Написать программу, переводит числа из десятичной системы исчисления в семеричную.
#include <stdio.h>
int main() {
int base = 7;
int number = 1000;
while (number > 0) {
printf("%d", number%base);
number/=base;
}
return 0;
}
Задача 4. Написать программу, которая принимает с клавиатуры число N и выводит следующий рисунок размера N:
|
|
N=1 | N=2 | N=3 | N=4 | … |
* | * ** * | * ** *** ** * | * ** *** **** *** ** * | ... |
#include <stdio.h>
int main() {
int N;
printf("Введите число N:\n");
scanf("%d", &N);
//Выводим первую половину строк
for (int i=1; i<=N; i++) {
for (int j=1; j<=i; j++) {
printf("*");
}
printf("\n");
}
//Выводим вторую половину строк
for (int i=N-1; i>=1; i--) {
for (int j=1; j<=i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
Задача 5. Написать программу, которая принимает с клавиатуры число N и выводит следующий рисунок размера N:
N=1 | N=2 | N=3 | N=4 | … |
* | *** * | ***** * * * | ******* * * * * * | ... |
#include <stdio.h>
int main() {
int N = 3;
//Количество звездочек в первой строке
int k = 2*N-1;
//Количество строк в треугольнике
int l = N-2;
//Количество пробелов перед последней *
int m = N-1;
for (int i=0; i<k; i++) {
printf("*");
}
printf("\n");
for (int i=0; i<l; i++) {
for (int j=0; j<i+1; j++) {
printf(" ");
}
printf("*");
for (int j=2*(N-i)-5; j>0; j--) {
printf(" ");
}
printf("*\n");
}
for (int i=0; i<m; i++) {
printf(" ");
}
printf("*\n");
return 0;
}
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- Приведите примеры, когда целесообразно использовать циклическую конструкцию.
- Какие типы циклов существуют в языке Си? Объясните их работу.
- Приведите примеры, когда определенный тип цикла использовать лучше, чем другой.
- Что такое вложенные циклы? Приведите примеры
- Объясните работу операторов break и continue. Приведите примеры.
- Как вычислить сумму элементов последовательности, используя циклы. Приведите пример.
- Как перевести число из одной системы исчисления в другую? Приведите пример.
ЗАДАНИЕ ДЛЯ ПРАКТИЧЕСКОГО ЗАНЯТИЯ
|
|
- Написать программу, которая просит пользователя ввести число N и выводит на экран N случайных чисел.
- Написать программу, которая выводит на экран последовательность Фибоначчи. Начало данной последовательности имеет вид: 0, 1, 1, 2, 3, 5, 8, 13. Каждое число равно сумме двух предыдущих.
- Написать программу, которая проверяет, является ли введенное число простым. Число называется простым, если оно делится без остатка только на само себя и на 1.
- Модифицировать программу «Угадай число» так, чтобы она работала, пока пользователь не угадает число, а после угадывания говорила, с какой попытки удалось угадать.
- Написать программу, выводящую следующие рисунки произвольного размера (размер вводится с клавиатуры):
- Написать программу, которая вычисляет факториал введенного числа. Факториал числа N обозначается через N! и является произведением чисел от 1 до N, т.е. 1*2*3*…*N. Например, 6!=1*2*3*4*5*6=720.
- Вывести на экран таблицу умножения:
- Написать программу, которая раскладывает введенное число на простые множители.
- Написать программу, выводящую следующие рисунки произвольного размера (размер вводится с клавиатуры):