Базовый вывод информации. Составление блок-схем алгоритмов. Анализ программного кода

Страницы работы

Фрагмент текста работы

Оглавление

Структура работы....................................................................................................... 2

Задание 1. Базовый вывод информации............................................................. 3

Задание 2. Составление блок-схем алгоритмов................................................ 5

Задание 3. Анализ программного кода................................................................ 7

Задание 4. Вычисление выражений................................................................... 14

Задание 5. Условный оператор............................................................................ 21

Задание 6. Работа с одномерными массивами................................................ 26

Приложение............................................................................................................... 30

Оформление выполняемых заданий.................................................................................... 30

Оформление исходного кода..................................................................................................... 30


Структура курсовой работы

1.  Титульный лист

2.  Лист задания

3.  Оглавление

4.  Вводная часть

a.  Краткая история развития языков программирования

b.  Описание и сравнение основных языков и сред программирования

c.  Отсортированный список наиболее используемых/популярных языков на текущее время

5.  Описание основных алгоритмов и синтаксиса языка C++

a.  Операции базового ввода/вывода

b.  Краткое описание правил составления блок-схем

c.  Выполнение арифметических операций в программе

d.  Использование условного оператора

e.  Назначение и применение одномерных/многомерных массивов

6.  Практические задания

a.  Задание 1

b.  Задание 2

c.  Задание 3

d.  Задание 4

e.  Задание 5

f.  Задание 6

7.  Заключение

a.  Выводы и замечания по проделанной работе

Задание 1. Базовый вывод информации

Программа рисующая которая с помощью функции print рисует из символов:

1.  Ваше имя в рамке (пример):

****************************************************

*  _____               .___                         *

*  /  _  \    ____    __| _/_______   ____  __  _  __*

*  /  /_\  \  /    \  / __ | \_  __ \_/ __ \ \ \/ \/ /*

*/    |    \|   |  \/ /_/ |  |  | \/\  ___/  \     / *

*\____|__  /|___|  /\____ |  |__|    \___  >  \/\_/  *

*  \/      \/      \/              \/          * ****************************************************

2.  Нарисовать автопортрет из ASCII символов

 

Для оценки качества выполнения работы результат должен быть представлен в виде:

1.      Программного кода:

// Задание №1 - Программа выводит на экран имя // Автор: Хайдаров А.Г.

#include "stdafx.h"

#include <stdio.h> //подключаем нужные библиотеки

#include <conio.h> using namespace System;

int main(array<System::String ^> ^args)

{

// Вывод на экран

// Для вывода на экран “\” в функции printf требуется использовать “\\”  printf("\n"\

" ****************************************************\n"\

"*   _____               .___                         *\n"\

"*  /  _  \\    ____    __| _/_______   ____  __  _  __*\n"\

"* /  /_\\  \\  /    \\  / __ | \\_  __ \\_/ __ \\ \\ \\/ \\/ /*\n"\

"*/    |    \\|   |  \\/ /_/ |  |  | \\/\\  ___/  \\     / *\n"\

"*\\____|__  /|___|  /\\____ |  |__|    \\___  >  \\/\\_/  *\n"\

"*        \\/      \\/      \\/              \\/          *\n"\

" ****************************************************\n");

getch();//Ожидание нажатия клавиши перед завершением работы программы

}

2.     Скриншот(ы) выполнения программы (Alt + PrintScreen):

 

Количество полученных баллов зависит от:

•  Сложности (оригинальности) вывода автопортрета

•  Сложности и эстетичности написания вашего имени

•  Грамотности программного кода

P.S. Текст и автопортрет могут выводится при помощи одной или двух отдельных программ по желанию

Задание 2. Составление блок-схем алгоритмов

Рисование блок-схем алгоритмов по заданной предметной области:

Вар. №

Предметная область

1.  

первая помощь

2.  

правила дорожного движения

3.  

бизнес-процесс на выбор

4.  

настройка элемента ИТ

5.  

поиск информации в интернете

6.  

алгоритм сортировки

7.  

поиск неисправности компьютерной сети

8.  

отладка программы

9.  

выбор техники в интернет-магазине

10.  

выбор будущей профессии

11.  

выбор фильма для просмотра

12.  

алгоритм поведения муравья

13.  

действия при пожаре

14.  

оформление кредита

15.  

покупка машины

16.  

покупка квартиры

17.  

как починить компьютер

18.  

игра в шахматы (шашки)

19.  

игра в морской бой

20.  

игра в карты (на выбор)

21.  

выращивание клубники

22.  

свидание с девушкой (парнем)

23.  

проектирование ИС

24.  

движение по лабиринту

25.  

запуск ракеты в космос

26.  

подготовка к экзамену

27.  

подготовка курсовой работы

28.  

настройка сети

29.  

верстка сайта

30.  

поиск информации

Количество полученных баллов зависит от:

•  Количества представленных блок-схем (оптимально 8-10 схем)

•  Развернутости блок-схем (полстраницы-страница)

•  Аккуратности выполнения (блоки выровнены, линии аккуратно соединены)

•  При малом количестве схем дополнительные баллы можно получить за составление блок-схем по более близкой для вас тематике на ваш выбор

Список возможных программ для рисования блок-схем:

•  MS Word (не рекомендуется)

•  MS Visio

•  OmniGraffle

•  https://www.draw.io (рекомендуется)

•  https://www.gliffy.com

•  https://creately.com

•  http://yuml.me/

•  и другие онлайн-сервисы

В результате выполнения задания в отчет должны быть вставлены изображения с нарисованными блок-схемами.

Хорошо

Плохо

Самостоятельное составление аккуратной блок-схемы за 3 минуты:

 

После этого составление еще 9 аккуратных блок-схем в таком же стиле с последующим получением максимального балла за это задание.

Копирование блок-схемы из интернета плохого качества с непрозрачным фоном с дальнейшим получением «0» баллов за нее:

 

Копирование еще одной неаккуратно сделанной схемы из интернета оформленную другим автором в другом стиле, где «не влезают слова» и блоки «наезжают друг на друга»:

 

Задание 3. Анализ программного кода

Выполнить анализ предоставленного программного кода.

Предлагаемые к рассмотрению критерии оценки программы:

1.  Предполагаемое назначение/использование

2.  Объяснения работоспособности/неработоспособности

3.  Возможный вариант оптимизации или альтернативы

4.  Ваши комментарии

5.  Другие критерии оценки по вашему усмотрению

Список заданий:

Вар. №

Анализируемый программный код

1.  

bool {

IsBukva(char symbol)

switch (symbol)

{ case'a':return 1; break; case'b':return 1; break; case'c':return 1; break; case'd':return 1; break; case'e':return 1; break; case'f':return 1; break; case'g':return 1; break; case'h':return 1; break; case'i':return 1; break; case'j':return 1; break; case'k':return 1; break; case'l':return 1; break; case'm':return 1; break; case'n':return 1; break; case'o':return 1; break; case'p':return 1; break; case'q':return 1; break; case'r':return 1; break; case's':return 1; break; case't':return 1; break; case'u':return 1; break; case'v':return 1; break; case'w':return 1; break; case'x':return 1; break; case'y':return 1; break; case'z':return 1; break; case'A':return 1; break; case'B':return 1; break; case'C':return 1; break; case'D':return 1; break; case'E':return 1; break; case'F':return 1; break; case'G':return 1; break; case'H':return 1; break; case'I':return 1; break; case'J':return 1; break; case'K':return 1; break; case'L':return 1; break; case'M':return 1; break;

}

case'N':return 1; break; case'O':return 1; break; case'P':return 1; break; case'Q':return 1; break; case'R':return 1; break; case'S':return 1; break; case'T':return 1; break; case'U':return 1; break; case'V':return 1; break; case'W':return 1; break; case'X':return 1; break; case'Y':return 1; break; case'Z':return 1; break; default:return 0;

}

2.  

}

char alphabet [] = { 'a', 'b', 'c', 'd', 'e', 'f',          'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',

'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',

'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 

'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',

'U', 'V', 'W', 'X', 'Y', 'Z' };

int count = sizeof(alphabet); char * p = alphabet;

for (int i = 0; i < count; i++, p++)

{

if (symbol == *p)

return 1;

3.  

bool isZifra(int c) { return true; } bool isZifra(char c) { return false; }

4.  

if (result == true)

return true;

else return result;

5.  

}

if (re  else

{

sult == true)

return true;

if (result == false) return false; else {       return (!true) && (!false); 

// ну надо же хоть что-то вернуть....

}

6.  

#define private public

#include <mylib.h> #undef private

7.  

#define CRASH_SOMETIMES 10/(rand()%10)

8.  

int SUM(int A, int B)

{

if (0 == A) return B;         if (0 == B) return A;

return (1 + (SUM(A, B - 1) + SUM(A - 1, B)) / 2);

}

9.  

int SUM(int A, int B, int C) {

}

if (0 == A) return B + C; if (0 == B) return C + A; if (0 == C) return A + B;

return (1 + (SUM(A - 1, B, C) + SUM(A, B - 1, C) + 

SUM(A, B, C - 1)) / 3);

10.  

int tilde(int a, int b) {

return b + 1;

} int inc(int a, int b) {         if (a == 0) return b;     if (b == 0) return a;

return tilde(a, inc(a, b - 1)); }

11.  

void get_tomorrow_date(struct timeval *date)

{

sleep(86400); // 60 * 60 * 24

gettimeofday(date, 0); }

12.  

void get_yesterday_date(struct timeval *date)

{

timemachine.return_to_yesterday();         gettimeofday(date, 0);

timemachine.return_to_tomorrow(); }

13.  

CNode* CBSTree::AddNode(CNode *&pTree, CNode *pNode) {

...

return !NULL;

}

...

if (AddNode(pTree->left, pNode) != NULL)

{              ...    }

...

14.  

int p, k, l, i, j, d, q, R, t, r;

S1:    s = 0; p = 1;

S2:    if (s == 0) { i = 1; j = n; k = n; l = 2 * n + 1; }        if (s == 1) { i = n + 1; j = 2 * n; k = 0; l = n + 1; }        d = 1; q = p; r = p;

S3:    if (x[i] > K > x[j]->K) goto S8;

S4:    k = k + d; x[k] = x[i]; c[k] = c[i];

S5:    i += 1; q -= 1; if (q > 0) goto S3;

S6:    k += d; if (k == l) goto S13; else x[k] = x[j]; c[k] = c[j];

S7:    j -= 1; r -= 1; if (r > 0) goto S6; else goto S12;

S8:    k += d; x[k] = x[j]; c[k] = c[j];

S9:    j -= 1; r -= 1; if (r > 0) goto S3;

S10:   k += d; if (k == l) goto S13; else x[k] = x[i]; c[k] = c[i];

S11:   i += 1; q -= 1; if (q > 0) goto S10;

S12:   q = p; r = p; d = -d; t = k; k = l; l = t;         if (j - i < p) goto S10; else goto S3;

S13:   p += p; if (p < n) { s = 1 - s; goto S2; }

if (s == 0) for (t = 1; t <= n; t += 1) { x[t] = x[t + n];         c[t] = c[t + n] }

15.  

while (true)

{

++i--;

}

16.  

int main()

{

...

return rand();

}

17.  

#define _ F-->00 || F-OO--; long F=00,OO=00;

main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);}F_OO()

{

_-_-_-_

_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_

_-_-_-_

}

18.  

double

}

vvod(double a1, double a2, double a3) {

// a1=a a2=b a3=c

cout << "Введите значение коэфицента a: "; cin >> a1; cout << endl;

cout << "Введите значение коэфицента b: "; cin >> a2; cout << endl;

cout << "Введите значение коэфицента c: "; cin >> a3; cout << endl; return (a1); return (a2); return (a3);

19.  

{

}while (1 < --index);

20.  

#include <iostream> using namespace std; int main() {

for (int i = 0; i < ((cout << 'c'), 5); 

((cout << 'i'), ++i))   cout << "b";  cout << endl;  return 0;

}

21.  

}

calculateSomething(int n){ float* x = new float[n];

/*do smth*/

if ( /*validation*/) {

delete [] x;         return;

}

float* y = new float[n];

/*do smth*/

if ( /*validation*/) {

delete [] x;         delete [] y;         return;

}

float* z = new float[n];

/*next step*/

if ( /*smth goes wrong*/) {

delete [] x;         delete [] y;         delete [] z;         return;

}

/*more calculations with validation*/

delete [] x; delete [] y; ...

/*more delete[]*/

return;

22.  

char *

{

}

f(char *s1, ...)

char **cp = &s1;      //--адрес первого указателя int len = 0;

// цикл для определения общей длины сцепляемых строк while (*cp) { len += strlen(*cp); cp++; }

char *s = new char[len + 1];   //--память для строки s[0] = 0;      //-- "очищаем" строку

// цикл для сцепления строк

cp = &s1;         //-- опять установка на 1-й параметр while (*cp)

{

strcat(s, *cp);  //-- прицепляем первую (и следующие)         cp++;           //-- перемещаемся на следующую

} return s;

23.  

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <iostream>

}

void main(){

int prog = 0, n;

printf("Which programm?  ");  scanf("%d", &prog);

if (prog == 1){

int glas = 0, sogl = 0, j = 0, k = 0;           char *s, *l, *m;

s = (char*) calloc(20, sizeof(char) );         l = (char*) calloc(20, sizeof(char) );         m = (char*) calloc(20, sizeof(char) );

flushall();

printf("\nEnter text:  ");

gets(s);

n = strlen(s);

/*Разбиваем на два массива исходную строку*/

for (int i = 0; i < n; i++){

if (s[i] == 'a' || s[i] == 'q' || s[i] == 'e' ||

s[i] == 'y' || s[i] == 'u' || s[i] == 'i' || s[i] == 'o' ||  s[i] == 'j'){ l[j] = s[i]; glas++; j++; }

if (s[i] == 'g' || s[i] == 'f' || s[i] == 'd' ||

s[i] == 's' || s[i] == 'p' || s[i] == 't' || s[i] == 'r' ||  s[i] == 'w' || s[i] == 'h' || s[i] == 'k' || s[i] == 'l' ||  s[i] == 'z' || s[i] == 'x' || s[i] == 'c' || s[i] == 'v' ||  s[i] == 'b' || s[i] == 'b' || s[i] == 'n' || s[i] == 'm')

{ m[k] = s[i]; sogl++; k++; }

}

printf("\nDivided:\n");           puts(l); puts(m);

/*Сортируем каждый массив*/               char c = 51, d = 11;              for (j = 0; j < sogl; j++) {      for (int i = 0; i<sogl; i++){ 

if (m[i]>m[i + 1] && (i + 1) < sogl)

{ d = m[i + 1];  m[i + 1] = l[i];  m[i] = d; } } }        for (j = 0; j < glas; j++)        { for (int i = 0; i<glas; i++)

{ if (l[i]>l[i + 1] && (i + 1) < glas)

{ c = l[i + 1];  l[i + 1] = l[i];  l[i] = c; } } }

printf("\nFinal:\n");               puts(l);             flushall();

puts(m);

}

24.  

bool ok = (state == 0) ? false : true;

25.  

int a = 0;

while (a <= 1 && a >= 0) {         a--;

}

26.  

bool IsDigit(char cKey, const char *cKeys) {

for (int i = 0; i < strlen(cKeys); i++)         if (cKeys[i] == cKey)                    return true;        return false;

}

27.  

void check(const elemType eps =

std::numeric_limits<elemType>::epsilon()){

}

count = 4;

int isAB = 0, isAC = 0, isAD = 0, isBC = 0, isBD = 0, isCD = 0; if (A == B) isAB = 1; if (A == C) isAC = 1; if (A == D) isAD = 1; if (B == C) isBC = 1; if (B == D) isBD = 1; if (C == D) isCD = 1;

if (isAB) { B = C; C = D; --count; } if (isAC) { C = D; --count; } if (isAD) { --count; } if (isBC) { C = D; --count; } if (isBD) { --count; } if (isCD) { --count; }

if (count < 3){ std::cerr << "Warning: Bad Frame.\n"; }

28.  

double

}

vvod(double a1, double a2, double a3) {

// a1=a a2=b a3=c

cout << "Введите значение коэфицента a: "; cin >> a1; cout << endl;

cout << "Введите значение коэфицента b: "; cin >> a2; cout << endl;

cout << "Введите значение коэфицента c: "; cin >> a3; cout << endl; return (a1); return (a2); return (a3);

29.  

void m

{

}

ain(void)

intz

Похожие материалы

Информация о работе