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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 28.1.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
3. Сочинение на тему Сочинения на свободную тему - Аквариум деловое описание 1
4. Реферат на тему Leaves Of Grass By Walt Whitman Essay
5. Реферат Тренинг как один из видов активного социально-психологического обучения
6. Лекция Экологические проблемы 3
7. Реферат Аутсорсинг в управлении персоналом
8. Контрольная работа по Муниципальному праву 2
9. Реферат Управление ликвидностью предприятия 2
10. Курсовая Социальная роль мужчины. Вектор трансформации