Задача по С+

  • Автор теми Автор теми Demix=)
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 10.04.2011
Повідом.: 867
Задача по С+

Написати програму, яка:
• Виводить текст на екран дисплея;
• По натисненню довільної клавіші по черзі виділяє кожне із слів тексту, у яких перший і останній символи співпадають;
• Визначає кількість слів тексту, у яких перший і останній символи співпадають.

Написать программу:
-Выводитm текст на экран;
-При нажатии любой клавиши по очереди выделяет каждое слово из текста, у которых первый и последний символы совпадают;
-Определяет количество слов текста, у которых первый и последний символы совпадают;

Код:
#include <stdio.h>
#include <conio.h>

int main()
{
FILE *fstream;
char first_ch = ' ', last_ch = '\0', tmp_ch;
int count = 0;

fstream = fopen("file.txt", "r");
if (!fstream)
{
printf("File error\n");
getch();
return 1;
}
printf("Soderjimoe faila\n");
printf("-------------------------------\n");
while ((tmp_ch = fgetc(fstream)) != EOF)
{
printf("%c", tmp_ch);
if (first_ch == ' ' || first_ch == '\n')
first_ch = tmp_ch;
else
{
if (tmp_ch == ' ' || tmp_ch == '\n')
{
if (first_ch == last_ch)
{
count++;
}
first_ch = tmp_ch;
}
else if (last_ch == ' ' || last_ch == '\n')
{
first_ch = tmp_ch;
}
else
last_ch = tmp_ch;
}
}
printf("-------------------------------\n");
printf("Kolichestvo slov s odinakovymi pervoi i poslednei bukvami %i\n", count);
getch();
return 0;
}

Вот то написал, а дальше как не знаю помогите доделать =) Она считает только кол-во символов.
 
Останнє редагування:
страхиття... чому не переклав? чи ты хочешь спилкуватыся выключно украйинською мовою?
 
Добавил и русский вариант.
 
вырвать руки за транслит
 
Ага, попробуй тут выложить код с табами и прочими отступами ))) ХТМЛ их игнорит. Нада специально размечать
 
Re: Задача по С+

Ага, попробуй тут выложить код с табами и прочими отступами ))) ХТМЛ их игнорит. Нада специально размечать

Да все нормально выкладывается, если в тег code заворачивать
 
Вот я решил задачу похожую, но здесь я ищу и выделяю слова которые начинаются на гласную букву, я её можно переделать на ту что мне нужно, только что изменить вот конкретно не знаю.


Код:
#include<iostream>
#include<windows.h>
#include<cstdlib>
#include<fstream>
#include<string>
#include<conio.h>
using namespace std;
CONSOLE_SCREEN_BUFFER_INFO csbi;
HANDLE consoleOutput;
COORD CurPos;
 
void Set_XY(int X, int Y);
void glasnost();
 
int main()
{
setlocale(0,"rus");
string word;
consoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
ifstream in1("Messi.txt"); //Создаем файловый поток.
while(in1>>word)// Передаем слова изфайла в строку.
cout<<word<<" ";//Выводим слова изфайла.
cout<<endl;
in1.close();//Закрываем поток.
glasnost();//Вызов функции, которая выделяет нужные слова.
system ("pause");
return 0;
}
void Set_XY(int X, int Y)//Функция, выставляющая курсор по координатам ХY.
{
CurPos. X=X; CurPos. Y=Y;
SetConsoleCursorPosition(consoleOutput, CurPos);
}
void glasnost()//Функция, выделяющая слова, которыеначинаются на гласную.
{
string word;
ifstream in("Messi.txt");
string glas="аоуеёияэыюАОУЕЁИЯЭЫЮ";//Гласные.
string znaki=",.!?;:'\|/({[*&^%$#@!№]})><";//Знаки.
int x=0, y=0;
int k=0;//Счетчик.
SetConsoleTextAttribute(consoleOutput,79);//Изменяем атрибуты вывода.
while (in>>word)
{
for(int i=0;i<glas.size();i++)//Поиск и выделениеслов.
if(word[0]==glas[i])
{
getch();
 
Set_XY(x,y);
cout<<word;
k++;
}
for(int i=0;i<znaki.size();i++)//Поиск и выделение слов.
if (word[word.size()-1]==znaki[i])
for(int i=0;i<glas.size();i++)
if (word[0]==glas[i])
{
getch();
word.erase(word.size()-1,1);
Set_XY(x,y);
cout<<word;
word=word+" ";
k++;//Количество слов.
}
x=x+word.size()+1;//Счетчик координат Х.
if(x>=80) {x=x-80; y++;}//Счетчик координат Y.
}
Set_XY(x,y);
SetConsoleTextAttribute(consoleOutput,7);//
cout<<endl;
cout<<"Количество слов которые начинаются на гласную = "<<k<<endl;
}
 
Код:
int main()
{
setlocale(0,"rus");
string word;
consoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
ifstream in1("Messi.txt"); //Создаем файловый поток.
while(in1>>word)// Передаем слова изфайла в строку.
cout<<word<<" ";//Выводим слова изфайла.
cout<<endl;
in1.close();//Закрываем поток.
glasnost();//Вызов функции, которая выделяет нужные слова.
system ("pause");
return 0;
}
void Set_XY(int X, int Y)//Функция, выставляющая курсор по координатам ХY.

какой ужас :рл:
 
TRANSLIT ***ть :******: , где ты достаешь этот кал? govnokod.ru?
 
Який жах!
 
согласен, *****... особенно это:
while ((tmp_ch = fgetc(fstream)) != EOF)
{
printf("%c", tmp_ch);

но не забывайте, чел только учится (1 курс наверное), и задача состоит в реализации логики. О чистоте кода начинаешь думать чуть позже :)

ТС, если не собираешься становиться конфигурастом 1С - учи английский)
 
Я один не пойму, на каком языке ТСу нужно написать задание? На C или C++ ? ТС, ты уточни для начала.
 
По С++ просто опечатка, задачу уже решил.
 
Назад
Зверху Знизу