Консультация № 187082
07.01.2013, 16:53
91.87 руб.
0 17 1
Здравствуйте дорогие эксперты! Помогите пожалуйста разработать программу на языке "С". В качестве среды разработки нужно использовать интегрированную программную среду Code::Blocks. Дополнительную информацию об этой среде см. по адресу: http://www.codeblocks.org. В качестве компилятора нужно использовать MinGW. Дополнительную информацию об этом компиляторе см. по адресу: http://www.mingw.org. Также устанавливается графическая библиотека GRX (http://grx.gnu.de). Подробная методичка с ходом установки Среды разработки, компилятора тут Cpp01.doc (1006.5 кб) Мог бы выложить готовую среду разработки но она не входит по размеру в "Мои файлы" на вашем портале, так как более 20 мб.
Задание для 1-й программы (вариант №8)
Вариантом задания считается число, формируемое последней цифрой номера зачетной книжки. Поэтому вариант – это число в диапазоне от 0 до 9.
Следует разработать программу, которая преобразует любой текстовый файл в другой текстовый файл по правилу, определяемому на основе своего варианта по табл. 1. Указанное правило применяется для каждой строки исходного текстового файла. В ходе выполнения программы пользователь может вводить имя исходного текстового файла, а также имя получаемого текстового файла.
Для начала можно составить программу, которая по строкам копирует один текстовый файл в другой, а потом модифицировать данную программу на основе правила, полученного согласно своему варианту. (задание: Если строка состоит из слов равной длины, то тогда поставить вос-клицательный знак в начало этой строки, сдвинув исходную строку на один символ вправо.) В методичке это всё написано в таблице, в ней думаю будет понятнее.

Обсуждение

Неизвестный
07.01.2013, 16:59
общий
методичка по первой программе Metodichka.doc (90.0 кб)
давно
Профессор
399103
482
07.01.2013, 22:04
общий
Добрый вечер. Т.е. нужен код на C, делающий то, что написано в последнем абзаце, а вступление про среду разработки и компилятор не важно, да?
Неизвестный
08.01.2013, 03:05
общий
это ответ
Здравствуйте, Посетитель - 390096!

Готово! Будут вопросы - обращайтесь)) скачать файл main.c [2.2 кб]
5
Неизвестный
08.01.2013, 08:12
общий
Спасибо Филипп. Вроде работает, но не пойму где класть текстовый файл, чтоб его нашла программка? Или в ней надо указать дирректорию?
Неизвестный
08.01.2013, 08:27
общий
08.01.2013, 08:42
Цитата: 390096
не пойму где класть текстовый файл, чтоб его нашла программка? Или в ней надо указать директорию?


Если работаешь в CodeBlocks'е, то кидай файл прямо в директорию проекта... Я так проверял))) Пожалуйста:)



Посмотри, в директории проекта, где, собственно, лежит main.c, есть ещё 2 файла: 1.txt и 2.txt... Вот как-то так)))
Неизвестный
08.01.2013, 08:50
общий
Спасиб, открыть файл получилось. Но почему то, в конечном файле восклицательные знаки ставятся после каждого абзаца и почемуто копирует адреса. Например \System32\WindowsPowerShell\v1.0;C:\Program Files\Lenovo\Bluetooth Software;C:\Program Files\Lenovo\Bluetooth Software\syswow64. Почему так?
Неизвестный
08.01.2013, 09:06
общий
Цитата: 392175
Добрый вечер. Т.е. нужен код на C, делающий то, что написано в последнем абзаце, а вступление про среду разработки и компилятор не важно, да?

Вы правы Александр Чекменёв, просто когда оформлял вопрос, было написано, что нужно подробное описание. Видимо язык "С" в любой среде разработки должен нормально ей восприняться.
Неизвестный
08.01.2013, 09:52
общий

Спасиб, открыть файл получилось. Но почему то, в конечном файле восклицательные знаки ставятся после каждого абзаца и почемуто копирует адреса. Например \System32\WindowsPowerShell\v1.0;C:\Program Files\Lenovo\Bluetooth Software;C:\Program Files\Lenovo\Bluetooth Software\syswow64. Почему так?


Хм... странное явление... попробую поправиться))
Неизвестный
08.01.2013, 10:43
общий
Прости за неудобство... Всё поправил))
Прикрепленные файлы:
c5e842d99dba37b0046294bdd61cc3d8.rar
Неизвестный
08.01.2013, 16:59
общий
08.01.2013, 17:37
Ещё одна проблемка. Можно сделать, так что бы восклицательный знак не ставился перед одиночными словами в строке?
Программа с разными текстовыми файлами, работает по разному. Даж бывает, что восклицательный знак ставится в строке где слова не равны по длине символов. В общем чего то не то )
Неизвестный
08.01.2013, 17:53
общий
08.01.2013, 18:02
т.е. если в строке оди одиночные символы, типа "а а а а а а", там "!" не ставить? щас попробуем=)

Даж бывает, что восклицательный знак ставится в строке где слова не равны по длине символов.


Это скорее всего из-за учёта знаков препинания... попробую поправить
Неизвестный
08.01.2013, 18:17
общий
08.01.2013, 18:19
Прошу=)
Если вдруг что-то не так - скинь свой пример, я хоть гляну, что не так ))
Прикрепленные файлы:
287c988534e268df012588c897fa555a.zip
Неизвестный
08.01.2013, 18:30
общий
нет, маленько не так. То бишь если в строке имеется слово (любое) и оно одно, то вот данный исходник программы ставит перед ним вросклицательный знак. А поусловию задачи этого вроде не должно быть. Ставиться восклицательный знак должен, как я понял, только если слова одинаковые по длине в строчке.
Сейчас получается вот так:
было до обработки:
Привет.
Привет Привет Привет Привет Привет.

Привет. Привет. Привет. Привет.


Привет, вроде работает.



стало после обработки:
!Привет.
!Привет Привет Привет Привет Привет.

!Привет. Привет. Привет. Привет.


Привет, вроде работает.


Вот, мне кажется по условию задачи не должен ставиться восклицательный знак перед одиночным словом с строке? Посмотри если не достал ещё)
давно
Старший Модератор
31795
6196
08.01.2013, 18:32
общий
Цитата: 390096
В общем чего то не то )


Задание:
Цитата: 390096
Для начала можно составить программу, которая по строкам копирует один текстовый файл в другой, а потом модифицировать данную программу на основе правила, полученного согласно своему варианту. (задание: Если строка состоит из слов равной длины, то тогда поставить вос-клицательный знак в начало этой строки, сдвинув исходную строку на один символ вправо.) В методичке это всё написано в таблице, в ней думаю будет понятнее.

У Вас в заданиии не указано, как определяются слова. В данном случае, эксперт Филипп, принял, что разделителями слов могут быть: пробел, "\0" или "\n".

Обратите внимание на эту строчку:
Код:
if (tmpStr[i]!=' '&&
tmpStr[i]!='\0'&&
tmpStr[i]!='\n') ++newcountChars;

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

Неизвестный
08.01.2013, 18:49
общий
Если это был один баг, то и он исправлен .
Да! я в 88-й строке закомментил один атрибут, мол чтобы программа ставила "!" перед, например, "а а а а а а".... если вдруг это не надо - раскомментируй ... С одинарными словами всё в порядке - знак не ставит....
Прикрепленные файлы:
486f4adcf23441eaba491bc1c5ace69f.zip
Неизвестный
08.01.2013, 19:00
общий
08.01.2013, 19:02
Всё, огромное спасибо Филипп. Всё работает и самое главное сам понял как работает )
Неизвестный
08.01.2013, 19:17
общий
На здоровье Обращайся
Форма ответа