Завдання №1
Дано цілі a1... an. Написати програму, яка б розраховувала суму тих елементів даної послідовності, які:
а) кратні 5;
б) непарні і ненегативні.
Порядок виконання завдання
1.Створив новий проект.
2.Ввів бібліотеку stdio.h, яка використовується для введення та виведення інформації.
3.Задав тип функції main.
4.Задав цілочисельний масив mas і цілочисельні змінні: i - лічильник, sum1, sum2, a1, a2.
5.Присвоїв початкові значення цілочисельним змінним i = 0, sum1 = 0, sum2 = 0 і цілочисельного масиву mas = {-1,2,5, -4,10}.
6.Задав цикл for: лічильник буде збільшуватися на одиницю до тих пір, поки не досягне значення, рівного числа елементів в масиві. Привласнив змінній а1 значення, рівне залишку від ділення i -того елемента масиву на 5, а змінній а2 значення, рівне залишку від ділення i -того елемента масиву на 2. Якщо значення змінної а1 дорівнює нулю (тобто i -ий елемент масиву без остачі поділився на 5, а значить, він кратний 5), то значення змінної sum1 збільшується на значення i -того елемента масиву. Якщо значення змінної а2 не буде дорівнює нулю і буде позитивне (тобто i -ий елемент масиву без остачі не поділився на 2, а значить, він був непарним), то значення змінної sum2 збільшується на значення i -того елемента масиву. Значення лічильника i збільшується на одиницю.
7.Використав функцію printf для виведення змінних sum1 та sum2.
8.Скомпілював програму і перевірив програму на наявність помилок.
Код програми
# include <stdio.h>
void main()
{
int mas[5]={-1,2,5,-4,10}, i=0, a1, a2,sum1=0, sum2=0;
for (i=0; i<5; i++)
{
a1=mas[i]%5;
a2=mas[i]%2;
if (a1==0)
sum1=sum1+mas[i];
if (a2!=0 && a2>0)
sum2=sum2+mas[i];
}
printf ("Sum1=%d\n", sum1);
printf ("Sum2=%d\n", sum2);
}
Результат роботи
Блок-схема
Ні
Так
Ні Ні
Так Так
Завдання №2
Дана цілочисельна квадратна матриця. Написати програму, яка б визначала b1... bn, де bi - це значення першого по порядку позитивного елемента i -го рядка (якщо таких елементів немає, то присвоїти bі значення - 1)
Порядок виконання завдання
1.Створив новий проект.
2.Ввів бібліотеку stdio.h, яка використовується для введення та виведення інформації.
3.Задав тип функції main.
4.Об’явив цілочисельний масив mas, розміром в 3´3 елементи, і b, розміром в 3 елементи.
5.Об’явив цілочисельні змінні i, j, ch і цілочисельний покажчик на адресу x елемента масиву b. i - лічильник числа рядків у масиві mas, j - лічильник числа стовпців в масиві mas.
6.Присвоїв початкові значення цілочисельним змінним: i = 0, j = 0 і цілочисельним масивам mas = {1, 2, -3, -4, 5, 6, -7, -8, -9} і b = {0}.
7.Задав цикл for, який буде працювати до тих пір, поки лічильник i не досягне значення, рівного числу рядків у масиві, також буде збільшуватися на одиницю покажчик на адресу x.
8.Присвоїв значення першого елемента масиву b за вказівником на адресу x. 9.Задав цикл for (вкладений цикл), який буде працювати до тих пір, поки лічильник j не досягне значення, рівного числа стовпців у масиві. 10.Присвоїв змінній ch значення i -ого j -того елементу масиву mas. Якщо змінна ch більше нуля - записується за вказівником на адресу x значення змінної ch і вихід з циклу, інакше значення лічильника j збільшується на одиницю. Якщо j стане дорівнює 3 (тобто в рядку не зустрілося жодного позитивного елементу), то за вказівником на адресу x в масив b запишеться значення -1.
11.Значення лічильника i збільшується на одиницю.
12.Задав цикл for, який буде працювати до тих пір, поки лічильник i не досягне значення, рівного числа елементів в масиві b.
13.Використавши функцію printf, програма виведе значення за вказівником х на екран при заданому і, тобто елементи матриці b.
14.Скомпілював програму і перевірив програму на наявність помилок.
Код програми
#include <stdio.h>
void main()
{
int mas[3][3]={1,2,-3,-4,-5,6,-7,-8,-9}, b[3]={0};
int *x=b;
int i, j, ch;
for (i=0; i< 3; i++, x++)
{
for (j=0, *x=0; j < 3; j++)
{
ch=mas[i][j];
if (ch>0)
{
*x=ch;
break;
}
}
if (j==3)
{
*x=-1;
}
}
x=b;
for (i=0; i<3; i++)
{
printf ("%d \t", *x++);
}
}
Результат роботи
Блок-схема
Ні Так
Так
Так
Ні
Ні
Так
Висновок: оволодів практичними навичками розробки і програмування обчислювального процесу, а також навчився використовувати покажчик на адресу