Добавил:
pavellevshic@gmail.com multifaceted personality Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab4

.docx
Скачиваний:
33
Добавлен:
27.11.2018
Размер:
561.17 Кб
Скачать

Учреждение образования «Гомельский государственный технический университет им. П.О. Сухого»

Кафедра «Промышленная электроника»

Лабораторная работа 2

«Программирование циклических алгоритмов»

Вариант 14

Выполнил: студент 1 курса

Группы ПЭ-11

Левшиц П.С.

Проверил преподаватель

Литвинов Д.А.

Гомель 2018

Цель работы: Изучить способы задания циклических алгоритмов с пред и пост условием. Научиться составлять, тестировать и отлаживать, циклические алгоритмы.

Контрольное задание 1

С помощью циклических алгоритмов реализовать следующие задания:

  1. Вывести на экран квадраты чисел от 1 до 10. Реализовать с помощью операторов цикла – while с предусловием;do ..while с пост условием и цикла с параметром for.

  2. Вывести на экран квадраты чисел от 10 до 1 (по убыванию). Реализовать с помощью операторов цикла – while с предусловием; do ..while с пост условием и цикла с параметром for.

  3. Для четных вариантов. Вывести на экран все четные числа в диапазоне от -20 до 20.

  4. Для нечетных вариантов. Вывести на экран все нечетные числа в диапазоне от -20 до 20.

Количество баллов за выполнение – 1. В отчет привести листинг программы и результаты тестирования.

Listing of program:

#include <stdio.h>

#include <windows.h>

#include <math.h>

int main(void)

{

int i;

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

//1

i = 1; // подготовка к выполнению цикла

while (i<= 10) // условие повторения цикла

{

printf("%3.0f " ,pow(i,2)); // телоцикла

i++; // модификация параметра цикла

}

printf("\n");

i = 1;

do {

printf("%3.0f " ,pow(i,2)); // телоцикла

i++;

} while (i<= 10); // условие повторения цикла

printf("\n");

for (i = 1; i <= 10; i++) // задаем начальное значение 1, конечное 1000 и задаем шаг цикла - 1.

{

printf("%3.0f " ,pow(i,2));

}

printf("\n");

//2

i = 10;

while (i>= 1) // условие повторения цикла

{

printf("%3.0f " ,pow(i,2)); // телоцикла

i=i-1; // модификация параметра цикла

}

printf("\n");

i = 10;

do {

printf("%3.0f " ,pow(i,2)); // телоцикла

i=i-1;

} while (i>= 1); // условие повторения цикла

printf("\n");

for (i = 10; i >= 1; i=i-1) // задаем начальное значение 1, конечное 1000 и задаем шаг цикла - 1.

{

printf("%3.0f " ,pow(i,2));

}

printf("\n");

//3

i = -20; // подготовка к выполнению цикла

while (i<= 20) // условие повторения цикла

{

printf("%3.0f " ,pow(i,2)); // телоцикла

i=i+2; // модификация параметра цикла

}

printf("\n");

i = -20;

do {

printf("%3.0f " ,pow(i,2)); // телоцикла

i=i+2;

} while (i<= 20); // условие повторения цикла

printf("\n");

for (i = -20; i <= 20; i=i+2 ) // задаем начальное значение 1, конечное 1000 и задаем шаг цикла - 1.

{

printf("%3.0f " ,pow(i,2));

}

printf("\n");

system("pause");

return(0);

}

Выполнение:

Контрольное задание 2

В соответствии с вариантом (номер по журналу), разработать программу для вычисления значений переменных в соответствии с условием, приведенном в таблице 4.1. Выполнить проверку исходных данных на корректность. Ввод проводить пока не будут введены допустимые значения.

Тип исходных данных выбрать самостоятельно. Количество баллов за выполнение – 1. В отчет привести листинг программы и результаты тестирования.

Listing

#include <stdio.h>

#include <windows.h>

#include <math.h>

int main(void) {

float r,h;

const float p=3.14159265358979323846;

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

do {

puts("Введите r:");

scanf("%f",&r);

}

while (r<=0);

do {

puts("Введите h:");

scanf("%f",&h);

}

while (h<=0);

printf("S основания конуса: %f \n",p*pow(r,2));

printf("V конуса: %f \n",(1.0/3)*p*pow(r,2)*h);

system("pause");

}

Run:

Контрольное задание 3

В соответствии с вариантом (номер по журналу), разработать программу для вычисления значенийкусочно – непрерывной функции y(x) на интервале от xнач доxкон с шагом ∆x. Функцияпредставленав таблице 4.2. Результаты расчетов представить в виде таблицы со следующими колонками:

  • Порядковый номер строки;

  • значения аргумента функции x;

  • вычисленного значения функции y;

  • номер формулы, по которой производилось вычисление функции (1, 2 или 3).

Выполнить решение задачи двумя способами, с помощью циклов while и for.

Исходные данные для отладки программы выбрать самостоятельно, так чтобы перекрывались все интервалы функции y(x).Количество баллов за выполнение – 2. В отчете привести таблицу описания переменных, блок – схему алгоритма, листинг программы и результаты тестирования.

Listing

#include <stdio.h>

#include <windows.h>

#include <math.h>

int main(void) {

float x1,x2,x,z,y;

int n;

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

printf("Введите промежуток [x1 x2 z] где z шаг: ");

scanf("%f %f %f",&x1, &x2, &z);

for (x=x1; x<=x2; x=x+z) {

if (x<=-1 || x==0) {

y=fabs(pow(x,3)+4);

n=1;

}

else

if (x >= 8) {

y=pow(x/2,0.5);

n=2;

}

else {

y=pow(x,3);

n=3;

}

printf("x:y %4.2f:%4.2f \n",x,y);

}

system("pause");

}

Run:

Блок схема:

Контрольное задание 4

В соответствии с вариантом (номер по журналу), разработать программу для реализации заданного алгоритма.Количество баллов за выполнение – 3. В отчет привести листинг программы и результаты тестирования.

  1. Во всех задачах последовательность вводится поэлементно, пока не будет введен 0.

Вводится последовательность целых чисел, 0 – конец последовательности. Определить сумму, среднее значение и количество чисел в последовательности.

Listing of program:

#include <stdio.h>

#include <windows.h>

#include <math.h>

int main(void) {

int sum, a, n, i;

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

n=0;

printf("Введите числа \n");

do {

scanf("%d",&a);

sum=sum+a;

n++;

}

while (a!=0);

    

printf("Сумма= %d Среднее= %1f Кол-во= %d \n",sum, 1.0*sum/n, n);

system("pause");

}

Run:

Контрольное задание 5

Найти все числа от 2 и не превосходящие n последние цифры квадратов которых равны числу возведённому в квадрат

Listing:

#include "pch.h"

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

setlocale(0,"");

int n, b, d;

bool e = false;

int c, i;

cout << "Введите число > 2 : " << endl; cin >> n;

for (i = 2; i < n; i++)

{

c = i;

d = c * c;

while (c != 0)

{

if (d % 10 != c % 10)

{

e = true;

break;

}

c /= 10;

d /= 10;

}

if (e == false)cout << "yes - " << i * i << "=" << i << "^2" << endl;

e = false;

}

}

Run:

Вывод: Изучил способы задания циклических алгоритмов с пред и пост условием. Научился составлять, тестировать и отлаживать, циклические алгоритмы.

Соседние файлы в предмете Основы алгоритмизации и программирования