Форум программистов, компьютерный форум CyberForum.ru

работа с файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверить, каких букв больше: гласных или согласных http://www.cyberforum.ru/cpp-beginners/thread129926.html
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных.
C++ Кодировщик Очень срочно нада Работа с стоками Кодировщик. Написать программу, перекодирующую строку в кодировке KOI в строку в кодировке Windows-1251 и обратно. http://www.cyberforum.ru/cpp-beginners/thread129923.html
Сравнение символов C++
#include <iostream> using namespace std; int main() { char t = "ab"; char j = "ac"; if(t > j)cout << 5; return 0;
Посчитать количество букв в строке C++
Помогите пожалуйста начинающиму.... Условие задачи: "Необходимо ввести с клавиатуры строку и посчитать количество букв в введеной строке.
C++ Составить программу для нахождения максимального из 4 чисел http://www.cyberforum.ru/cpp-beginners/thread129912.html
Составить программу для нахождения максимального из 4 чисел.Используя функцию нахождения максимального
C++ Необычный алгоритм Евклида Помогите,пожалуйста!Написал програму,не могу найти ,где в ней ошбка.Условие:дано натуральное число n ичислаа1,а2,а3,...,аn,которые вводятся с клавиатуры.Найти наибольший общий делитель для даных чисел.Вот код моей программы:]#include <stdio.h> #include <conio.h> main() { unsigned int i,n,s=1,a,b,c,d; printf("n="); scanf("%u",&n); for(i=1;i<=n;i++) { подробнее

Показать сообщение отдельно
Define
0 / 0 / 0
Регистрация: 03.04.2010
Сообщений: 83
24.05.2010, 23:40  [ТС]     работа с файлами
вот эта программа на паскале как можно ее переделать в си:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var t1, t2:string;
mn, mn1:set of char;
a:array[1..50] of string[25];
c:string[25];
kb, kp, ksl, i, k:byte;
p:boolean;
begin
  readln(t1); t1:=t1+'';
  mn1:=['.', '!', '?'];
  mn:=[' ', ',', '-', ':', ';'];
  kp:=0;
  kb:=0; ksl:=0;
  for i:=1 to length(t1)  do
  if  (t1[i] in mn1) then inc (kp);  writeln('kol-vo pred =', kp);{считаю кол-во предложений}
 
  for i:=1 to length(t1)  do
  if not (t1[i] in mn) then inc (kb)
  else if kb>0 then{пустые слова не берем}
    begin
      inc(ksl);{счетчик слов}
      a[ksl]:=copy(t1, i-kb, kb);
      kb:=0;
    end;
  k:=ksl;
  repeat{сортируем в алфавитном порядке}
    p:=true; dec(k);
    for i:=1 to k do
      if (a[i])>(a[i+1]) then {сравниваем сами слова}
        begin
          c:=a[i];
          a[i]:=a[i+1];
          a[i+1]:=c;
          p:=false;
        end;
      until p;
  t2:='';
  for i:=1 to ksl do
  t2:=t2+a[i]+' ';
  writeln('text v alfavitnom poradke   ', t2);
end.
Добавлено через 1 час 59 минут
и вариант ее же в с++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
 
 
struct WORDS
{
        char a[50];
        char b[50];
};
 
bool check;
 
const int word_number = 5;  //The number of words
void sort_abc(int, WORDS[]);
bool check_abc(WORDS[]);
 
 
//-----------------------------------------------
 
int main()
{
        WORDS words[word_number];
        int entered;
 
        for(entered = 0; entered < word_number; ++entered) //To record the words
        {
                cout<<endl<<"Enter a word : ";
                cin>>words[entered].a;
                strcpy(words[entered].b, words[entered].a);
        }
        sort_abc(entered, words);
 
 
        system("PAUSE");
        return 0;
}
 
//-----------------------------------------------
 
void sort_abc(int entered, WORDS words[]) //Sorts the words
{
        int row = 0;
        int limit = 3;
        char temp[20];
        int write;
 
        cout<<"The list alphabetized is :"<<endl;
 
        for(row = 0;check_abc(words) != true; ++row)
        {
              if(row > limit)
              row = 0;
                        if(strcmp(words[row].a, words[row+1].a) > 0) //If the two words aren't in alphabetical order
                        {
                                cout<<"Changing words : "<<words[row].a<<" & "<<words[row+1].a<<endl;
 
                                strncpy(temp, words[row].a, 19);
                                temp[19]='\0';
                                strncpy(words[row].a, words[row+1].a, 19);
                                words[row].a[19] = '\0';
                                strncpy(words[row+1].a, temp, 19);
                                words[row+1].a[19] = '\0';
 
 
                        }
 
             check_abc(words);
        }
        for(write = 0; write !=word_number; ++write)
        cout<<words[write].a<<endl;
}
 
//-----------------------------------------------
 
bool check_abc(WORDS words[]) //Checks if the letters are in alphabetical order
{
        int max_limit = 0, limit = 0;
        int yes = 0;
 
        for(max_limit = word_number; max_limit !=0; --max_limit)
        {
                for(limit = 0; limit != max_limit; ++limit)
                {
                        if(strcmp(words[limit].a, words[max_limit].a) < 0)
                        yes++;
                }
        }
 
 
        if(yes == 10)
        check = true;
 
        return check;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru