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

Лабораторная работа Символы. Строки

Работа добавлена на сайт bukvasha.net: 2015-10-29

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.6.2025



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ


Лабораторная работа №3

по дисциплине «Информатика и программирование»
Символы. Строки
Группа:
Студенты:
Преподаватель:
Твой город,2009

Задание


Вариант 07.  Заменить в строке все символьные константы вида ‘A’ на соответствующие шестнадцатиричные (т.е. ‘А’ на 0х41).


Проектирование программы

Составные части:


1.Проверка введённой строки на наличие символьной константы типа ‘A’.

        if (str[i]==39)//Если кавычка до этого момента уже была, то новая встреченная кавычка задаётся закрывающей

        {

            if (k)

            {

                k=0;

            }

            else

            {

                k=1;

            }

        }

        else if (str[i]==' ')//Если символ - пробел, вывести пробел

        {

            cout << str[i];

        }
2.С помощью деления числового значения символа на 16 получаем шестнадцатеричную константу (результат и остаток деления на 16).

b=a/j;//Деление числа на 16

                  j=j/16;//Деление j на 16. В следующем шаге b делится на 1 и выводится остаток от деления предыдущего шага

                 if (b==15)//Эта и следующие строки - вывод результатов деления. Замена чисел от 10 до 15 их 16-ричными эквивалентами

a=a-b*j*16;//а становится равно остатку от деления a на 16 в начале шага цикла
3.Замена закавыченных символов на соответствующие шестнадцатеричные. «Обычные символы» оставляем без изменений.

4.Выводим массив.

                    if (b==15)//Эта и следующие строки - вывод результатов деления. Замена чисел от 10 до 15 их 16-ричными эквивалентами

                    {

                        cout << 'F';

                    }

                    else if (b==14)

                    {

                        cout << 'E';

                    }

                    else if (b==13)

                    {

                        cout << 'D';

                    }

                    else if (b==12)

                    {

                        cout << 'C';

                    }

                    else if (b==11)

                    {

                        cout << 'B';

                    }

                    else if (b==10)

                    {

                        cout << 'A';

                    }

                    else

                    {

                        cout << b;

                    }

            }

            else

            {

                cout << str[i];//Если символ не заковычен - вывести сам символ


Текст программы с комментариями




#include <iostream>

#include <string>

#include <stdio.h>

using namespace std;
void main()

{

    char str[100];

    char s[100];

    gets(str);

    bool k=0;

    for (int i=0; str[i]!=0; i++)//Цикл замены каждого отдельного символа строки

    {

        if (str[i]==39)//Если кавычка до этого момента уже была, то новая встреченная кавычка задаётся закрывающей

        {

            if (k)

            {

                k=0;

            }

            else

            {

                k=1;

            }

        }

        else if (str[i]==' ')//Если символ - пробел, вывести пробел

        {

            cout << str[i];

        }

        else

        {

            if (k)

            {

                int a;

                int b;

                a = (int) str[i];//а - числовое значение символа строки

                cout << "0x";//Вывод 0x

                int j=1;

                while (j*16<a)//Самое больше число, кратное 16 и меньшее а. Т.к. символов 256, то число - 16.

                {

                    j=j*16;

                }

                while (j>=1)

                {

                    b=a/j;//Деление числа на 16

                    j=j/16;//Деление j на 16. В следующем шаге b делится на 1 и выводится остаток от деления предыдущего шага

                    if (b==15)//Эта и следующие строки - вывод результатов деления. Замена чисел от 10 до 15 их 16-ричными эквивалентами

                    {

                        cout << 'F';

                    }

                    else if (b==14)

                    {

                        cout << 'E';

                    }

                    else if (b==13)

                    {

                        cout << 'D';

                    }

                    else if (b==12)

                    {

                        cout << 'C';

                    }

                    else if (b==11)

                    {

                        cout << 'B';

                    }

                    else if (b==10)

                    {

                        cout << 'A';

                    }

                    else

                    {

                        cout << b;

                    }

                    a=a-b*j*16;//а становится равно остатку от деления a на 16 в начале шага цикла

                }

            }

            else

            {

                cout << str[i];//Если символ не заковычен - вывести сам символ

            }

        }

    }
}

Пример работы программы




AB'C' DE'F'

AB0x43 DE0x46Для продолжения нажмите любую клавишу . . .


Ошибки и ограничения. Выводы


Ошибок в программе нет, программа работает согласно условию задачи.

1. Доклад на тему Субкоманданте Маркос Интергалактическая хроника и война против забвения майя
2. Реферат Федеральная антимонопольная служба России, её функции
3. Реферат на тему Предпринимательские договора виды содержания и порядок заключения
4. Контрольная работа Контрольная работа по Правоведенью
5. Отчет по практике Отчет по практике в ОАО Банк ВТБ
6. Реферат на тему Warped Values Essay Research Paper Warped ValuesWilly
7. Реферат Звязок зовнішніх форм тварини з продуктивністю
8. Контрольная работа Психологические особенности допроса потерпевшего
9. Реферат Екологічна проблема як наслідок економічної діяльності 2
10. Реферат Становление натурфилософской картины мира