Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: как написать программу на С
да 2 100.00%
нет 0 0%
не знаю 0 0%
- 0 0%
Голосовавшие: 2. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2015, 14:15   #1
Andre1987
Новичок
Джуниор
 
Регистрация: 06.01.2015
Сообщений: 6
По умолчанию Написать программу на C, которая выводит текст на экран дисплея, меняя в нем местами заданные слова

С помощью текстового редактора БЛОКНОТ создать файл, содержащий текст, длина которого не превышает 700 символов (длина строки текста не должна превышать 70 символов).
Файл должен иметь расширение DAT.
Написать программу, которая:
 выводит текст на экран дисплея;
 выводит текст на экран дисплея еще раз, меняя в нем местами заданные слова (заданные слова вводятся с клавиатуры).

Код:
#include <conio.h> 	//библиотека функция для работы с консолью
#include <stdio.h>		//библиотека функций для работы с файлами 
#include <io.h>		//библиотека функций для работы с файлами 
#include <locale.h> 	//библиотека для поддержки русского языка
#include <windows.h> 	//библиотека функция для работы с консолью 
FILE* f_open;//функуция для работы с файлом
FILE* f;//Объявление файла 
int kod;
char puch[]="c:\\stih.dat";//строка для сокращения записи в коде
FILE *Open_file(char*,char*);// функция для работы с файлом 
void fun_1();//функция для чтения файла
void fun_2();//функция для выполнения задания

void main ()//главная функция   
{setlocale(LC_CTYPE, "Russian");//подержка русского языка
int menu, rowN=0;//целочисленные переменные
do//цикл выполнится хотябы один раз
{
puts("\t\t\tМеню:");
puts("\t\t1-вывод текста на экран дисплея С\:stih.dat");
puts("\t\t2-определить количество предложений текста и количество слов в каждом предложении.");
puts("\t\t3-выход");

scanf("%d",&menu);//выбор пункта меню
switch(menu)//отстройка меню
{
case 1: case 2://выполняется при выборе 1 или 2

f_open=Open_file(puch,"r");//функция открывает файл для чтения
if(menu==1) //если выбран первый пункт
	{	
		fun_1();//функция для чтения файла
		fclose(f_open);//файла закрыт
		break;//выход из меню
	}
else//если не выбран пункт 1
{
fun_2();//функция для выполнения задания
fclose(f_open);//файла закрыт
}
case 3: exit(0);//завершение работы программы
break;//выход из меню
default: //значение не совподает ни с одним из значений
	system("cls"); //чистка экрана
	puts("неправельный выбор");//вывод на экран
}}
while(1);//бесконечный цикл
_getch();//возвращает очередной символ
}

FILE *Open_file(char*file,char* kod)//функция для работы с файлом
{
FILE* f;//Объявление файла 
if(!(f=fopen(file,kod)))//если функция имеет решения
{
	puts("Ошибка открытия файла!");//сообщение об ошибке
	exit(1);//завершение с кодом ошибки 1
}
return f;//возвращение значения файла
}

void fun_1()//функция для чтения файла
{char *strbuff;//указатель на строку
	int i;//целочисленные переменные
strbuff=new char[71];//выделение памяти для строки
if (strbuff==NULL)//если строка массива не создана
{puts("ошибка при создании массива строки"); //сообщение об ошибки
_getch();//возвращает очередной символ
return;//завершение функции
}

printf("\n-----------Исходный текст---------------\n");//разделение вывода
while(fgets(strbuff,70,f_open)!=NULL)//цикл: считывание с файла всех строк
{
printf("%s",strbuff);//вывод строк на экран
}
printf("\n-----------Конец текста---------------\n");//разделение вывода
delete[]strbuff;//удаление ранее выделиной памяти для строки
_getch();//возвращает очередной символ
}

void fun_2()//функция для выполниния задания
{
что писать во 2 функции?




________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 06.01.2015 в 14:28.
Andre1987 вне форума Ответить с цитированием
Старый 06.01.2015, 14:48   #2
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Опрос гениальный. "Как написать программу на си". Ответ ДА!!!
WinCoder вне форума Ответить с цитированием
Старый 06.01.2015, 14:50   #3
Andre1987
Новичок
Джуниор
 
Регистрация: 06.01.2015
Сообщений: 6
По умолчанию

не знаю как удалить опрос....можете помочь с решением задачи?
Andre1987 вне форума Ответить с цитированием
Старый 06.01.2015, 15:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я опрос закрыл.
По теме: А что ты хочешь во второй функции делать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.01.2015, 15:33   #5
Andre1987
Новичок
Джуниор
 
Регистрация: 06.01.2015
Сообщений: 6
По умолчанию

выводит текст на экран дисплея еще раз, меняя в нем местами заданные слова (заданные слова вводятся с клавиатуры).

как это сделать??

Последний раз редактировалось Stilet; 06.01.2015 в 16:10.
Andre1987 вне форума Ответить с цитированием
Старый 06.01.2015, 16:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну например так:
Код:
void fun_2()//функция для чтения файла
{char *strbuff;//указатель на строку
	int i;//целочисленные переменные

char s1[255]={0},s2[255]={0};
printf("Первое слово: ");scanf("%s",&s1);
printf("Второе слово: ");scanf("%s",&s2);

strbuff=new char[71];//выделение памяти для строки
if (strbuff==NULL)//если строка массива не создана
{puts("ошибка при создании массива строки"); //сообщение об ошибки
_getch();//возвращает очередной символ
return;//завершение функции
}

printf("\n-----------Исходный текст---------------\n");//разделение вывода
while(!feof(f_open)!=NULL)//цикл: считывание с файла всех строк
{
 fscanf(f_open,"%s ",&strbuff);
 if(strcmp(strbuff,&s1) printf("%s",s2) else
 if(strcmp(strbuff,&s2) printf("%s",s1) else
 printf("%s",strbuff);
}
printf("\n-----------Конец текста---------------\n");//разделение вывода
delete[]strbuff;//удаление ранее выделиной памяти для строки
_getch();//возвращает очередной символ
}
Если не ошибаюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.01.2015, 16:18   #7
Andre1987
Новичок
Джуниор
 
Регистрация: 06.01.2015
Сообщений: 6
По умолчанию

получается так?
Код:
#include <conio.h> 	//библиотека функция для работы с консолью
#include <stdio.h>		//библиотека функций для работы с файлами 
#include <io.h>		//библиотека функций для работы с файлами 
#include <locale.h> 	//библиотека для поддержки русского языка
#include <windows.h> 	//библиотека функция для работы с консолью 
FILE* f_open;//функуция для работы с файлом
FILE* f;//Объявление файла 
int kod;
char puch[]="c:\\stih.dat";//строка для сокращения записи в коде
FILE *Open_file(char*,char*);// функция для работы с файлом 
void fun_1();//функция для чтения файла
void fun_2();//функция для выполнения задания

void main ()//главная функция   
{setlocale(LC_CTYPE, "Russian");//подержка русского языка
int menu, rowN=0;//целочисленные переменные
do//цикл выполнится хотябы один раз
{
puts("\t\t\tМеню:");
puts("\t\t1-вывод текста на экран дисплея С\:stih.dat");
puts("\t\t2-определить количество предложений текста и количество слов в каждом предложении.");
puts("\t\t3-выход");

scanf("%d",&menu);//выбор пункта меню
switch(menu)//отстройка меню
{
case 1: case 2://выполняется при выборе 1 или 2

f_open=Open_file(puch,"r");//функция открывает файл для чтения
if(menu==1) //если выбран первый пункт
	{	
		fun_1();//функция для чтения файла
		fclose(f_open);//файла закрыт
		break;//выход из меню
	}
else//если не выбран пункт 1
{
fun_2();//функция для выполнения задания
fclose(f_open);//файла закрыт
}
case 3: exit(0);//завершение работы программы
break;//выход из меню
default: //значение не совподает ни с одним из значений
	system("cls"); //чистка экрана
	puts("неправельный выбор");//вывод на экран
}}
while(1);//бесконечный цикл
_getch();//возвращает очередной символ
}

FILE *Open_file(char*file,char* kod)//функция для работы с файлом
{
FILE* f;//Объявление файла 
if(!(f=fopen(file,kod)))//если функция имеет решения
{
	puts("Ошибка открытия файла!");//сообщение об ошибке
	exit(1);//завершение с кодом ошибки 1
}
return f;//возвращение значения файла
}

void fun_1()//функция для чтения файла
{char *strbuff;//указатель на строку
	int i;//целочисленные переменные
strbuff=new char[71];//выделение памяти для строки
if (strbuff==NULL)//если строка массива не создана
{puts("ошибка при создании массива строки"); //сообщение об ошибки
_getch();//возвращает очередной символ
return;//завершение функции
}

printf("\n-----------Исходный текст---------------\n");//разделение вывода
while(fgets(strbuff,70,f_open)!=NULL)//цикл: считывание с файла всех строк
{
printf("%s",strbuff);//вывод строк на экран
}
printf("\n-----------Конец текста---------------\n");//разделение вывода
delete[]strbuff;//удаление ранее выделиной памяти для строки
_getch();//возвращает очередной символ
}

void fun_2()//функция для выполниния задания
{char *strbuff;//указатель на строку
	int i;//целочисленные переменные

char s1[255]={0},s2[255]={0};
printf("Первое слово: ");scanf("%s",&s1);
printf("Второе слово: ");scanf("%s",&s2);

strbuff=new char[71];//выделение памяти для строки
if (strbuff==NULL)//если строка массива не создана
{puts("ошибка при создании массива строки"); //сообщение об ошибки
_getch();//возвращает очередной символ
return;//завершение функции
}

printf("\n-----------Исходный текст---------------\n");//разделение вывода
while(!feof(f_open)!=NULL)//цикл: считывание с файла всех строк
{
 fscanf(f_open,"%s ",&strbuff);
 if(strcmp(strbuff,&s1) printf("%s",s2) else
 if(strcmp(strbuff,&s2) printf("%s",s1) else
 printf("%s",strbuff);
}
printf("\n-----------Конец текста---------------\n");//разделение вывода
delete[]strbuff;//удаление ранее выделиной памяти для строки
_getch();//возвращает очередной символ
}
Andre1987 вне форума Ответить с цитированием
Старый 06.01.2015, 16:21   #8
Andre1987
Новичок
Джуниор
 
Регистрация: 06.01.2015
Сообщений: 6
По умолчанию

пишет ошибки
Код:
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(136): warning C4129: ':' : unrecognized character escape sequence
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(140): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(170): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(234) : see declaration of 'fopen'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(180): warning C4101: 'i' : unreferenced local variable
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(203): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(204): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(216): warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(253) : see declaration of 'fscanf'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(217): error C2664: 'strcmp' : cannot convert parameter 2 from 'char (*)[255]' to 'const char *'
1>          Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(217): error C2146: syntax error : missing ')' before identifier 'printf'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(217): error C2143: syntax error : missing ';' before 'else'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(218): error C2664: 'strcmp' : cannot convert parameter 2 from 'char (*)[255]' to 'const char *'
1>          Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(218): error C2146: syntax error : missing ')' before identifier 'printf'
1>g:\контрольная работа\кср\кср-1\кср-1\кср-1.cpp(218): error C2143: syntax error : missing ';' before 'else'
Andre1987 вне форума Ответить с цитированием
Старый 06.01.2015, 16:31   #9
Andre1987
Новичок
Джуниор
 
Регистрация: 06.01.2015
Сообщений: 6
По умолчанию

в Visual Studio 2010 кучу ошибок выкидывает
Andre1987 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а denis121 C# (си шарп) 4 15.06.2013 12:22
Вывести на экран строки, меняя местами два соседних слова voodooism Общие вопросы C/C++ 1 23.01.2013 22:52
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа FredPerry Паскаль, Turbo Pascal, PascalABC.NET 1 26.05.2012 08:17
написать программу, которая считывает текст из файла и выводит на экран только те предложения, состоящие из заданного ко VovaMazur Помощь студентам 0 24.09.2011 14:51
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном по avic Общие вопросы C/C++ 1 22.12.2010 12:41