Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal (Паскаль)

Войти
Регистрация
Восстановить пароль
 
commissarii
0 / 0 / 0
Регистрация: 18.03.2014
Сообщений: 16
#1

Как будет выглядеть код, написанный на Си в Паскале - Pascal

18.03.2014, 01:24. Просмотров 344. Ответов 1
Метки нет (Все метки)

Здесь три программы (5,7,14) Задание к ним ( на всякий случай)
5. Дана матрица А размером m на n (m не n, m<=5, n<=10). Транспонировать данную матрицу. Для полученной матрицы построить диаграмму максимальных элементов столбцов.
7. Разработать программу, подсчитывающую частоту повторения в тексте слов и печатающую слова в порядке уменьшения их частоты. Распечатать статистику по словам с частотой не менее 2.
14. Построить диаграмму цифр целого числа <=1000000, вводимого с клавиатуры или задаваемого датчиком случайных чисел.
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <limits.h>
#include <time.h>
#include <string.h>
 
void pr5()
{
    int **x, *res, *acc, i, g, m, n;
    FILE * tFile;
    tFile = fopen("input.txt", "r");
    fscanf(tFile, "%d %d", &m, &n);
 
    x=malloc(n * sizeof(int *));
    for (i=0;i<n;i++)
        x[i]=malloc(m * sizeof(int));  /*динамический массив*/
 
    for (i=0; i<m; i++)
    {
        for (g=0; g<n; g++)
            fscanf(tFile, "%d", &x[g][i]);
    }
 
    fclose(tFile);
    tFile = fopen("output.txt", "w");
 
    for (i=0; i<n; i++)
    {
        for (g=0; g<m; g++)
            fprintf(tFile, "%d ", x[i][g]);
        fprintf(tFile, "\n");
    }
    fprintf(tFile, "\n");
    res=malloc(m * sizeof(int));
    acc=malloc(m * sizeof(int));
 
    for (i=0;i<m;i++)
        acc[i]=1;
 
    for (i=0; i<m; i++)
    {
        for (g=0; g<n; g++)
        {
            if(x[g][i]>x[1][i])
                x[1][i]=x[g][i];
        }
        res[i]=x[1][i]; /*отдельный массив*/
    }
 
    for (i=0;i<n;i++) /*освобождаем память*/
        free(x[i]);
    free(x);
    n=1;
 
    for (i=0;i<m;i++)
        for (g=i+1;g<m;g++)
        {
            if (res[i]==INT_MIN)
                    break;
            else if ((res[i]==res[g])&&(res[g]!=INT_MIN))
            {
                res[g]=INT_MIN;/*число элемента*/
                acc[g]=INT_MIN;/*его количество*/
                acc[i]++;
                if (acc[i]>n)
                    n=acc[i];
            }
        }
    for (i=n;i>0;i--) /*строим таблицу*/
    {
        for (g=0;g<m;g++)
        {
            if (acc[g]!=INT_MIN)
            {
                if (acc[g]>=i)
                    fprintf(tFile, "*\t");
                else
                    fprintf(tFile, " \t");
            }
        }
        fprintf(tFile, "\n");
    }
    for (g=0;g<m;g++)
    {
        if (acc[g]!=INT_MIN)
        {
            fprintf(tFile, "%d\t", res[g]);
        }
    }
    fclose(tFile);
    free(res);
    free(acc);
    printf("\nTask execution complete\nResults are stored in output.txt");
}
 
void pr7()
{
    int i=0, g;
    int* tdm;
    int cp;
    char* temp[25];
    char** rstr, tstr;
    FILE * tFile;
    tFile = fopen("input.txt", "r");
 
    while (fscanf(tFile, "%s ",temp) != EOF) /*EOF - конец файла*/
    {
        i++;
        for (g=0;g<strlen(temp);g++)  /*проходим все слова,делаем большие буквы маленькими*/
            temp[g]=tolower(temp[g]);
 
        cp=0;
        for (g=0;g<i;g++)
            if (temp==tstr[g])
                {
                    cp=1;
                    tdm[g]++;
                }
        if(!cp)
        {
            tdm = (int*)realloc(tdm,sizeof(int)*i); /*добавление слова в ячейку что бы сравнивать*/
            tdm[i-1]=1;
            tstr = (char**)realloc(tstr,sizeof(char*)*i);
            tstr[i-1] = tstr[i-1] = (char*)realloc(tstr[i-1],sizeof(char)*strlen(temp));
            tstr[i-1]=temp;
        }
    }
    fclose(tFile);
    tFile = fopen("output.txt", "w");
    for (g=0;g<i;g++)
    {
        if (tdm[g]>1)
            fprintf(tFile, "%s: %d\n",tstr[g],tdm[g]);
    }
    fclose(tFile);
    for (g=0;g<i;g++)
    {
        free(tstr[g]);
    }
    free(tdm);
    free(tstr);
    printf("\nTask execution complete\nResulting table of words is stored in output.txt");
}
 
void pr14()
{
    FILE * tFile;
    tFile = fopen("output.txt", "w");
    int digr[10]={0}, i, g;
    scanf("%d",&i);
    while (i!=0)
        {
            digr[i%10]++;  /*остаток от деления на 10*/
            i=i/10;
        }
    for (i=7;i>0;i--)
    {
        for (g=0;g<10;g++)
            {
                if (digr[g] >= i)
                    fprintf(tFile, "* ");
                else
                    fprintf(tFile, "  ");
            }
        fprintf(tFile, "\n");
    }
    fprintf(tFile, "0 1 2 3 4 5 6 7 8 9");
    printf("\nTask execution complete\nResulting diagram is stored in output.txt");
}
 
int main(int argc, char *argv[])
{
    switch(strtol(argv[1],NULL,10))
    {
        case 5:
            break;
            pr5();
        case 7:
            pr7();
            break;
        case 14:
            pr14();
            break;
        default:
            printf("Unknown task, exiting program");
            break;
    }
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 01:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как будет выглядеть код, написанный на Си в Паскале (Pascal):

Как будет выглядеть код, написанный на Си в Паскале - Pascal
Здраствуйте.Как можно записать эту функцию в паскале? void LoadDB( const char* fname, struct MANUFACTORY *z1, struct MANUFACTORY *z2,...

Как будет выглядеть код, написанный на Си в Паскале - Pascal
Здесь три программы (3,6,11) Задание к ним ( на всякий случай) 3. Даны три вектора X, Y, Z, состоящие из n (n&lt;=12) компонент. Построить...

Как на рисунке будет выглядеть (trunc(y)=0) and (round(x)=0) ? - Pascal
Нарисовать на плоскости (x,y) область, в которой истинно указанное выражение: а) (y&gt;=x) and (y+x&gt;=0) and (y&lt;=1) б) (sqr(x)+sqr(y)&lt;1) or...

Как будет выглядеть эта рекурсивная функция , файл ворд - Pascal
Заранее благодарю .

Объяснить написанный код - Pascal
Здравствуйте, нужна помощь в виде объяснения кода, который ниже, что то разобраться не могу. Задача вот такая: Дан текст на русском языке...

Как будет выглядеть на Pascal реализация алгоритма Дейкстры? - PascalABC.NET
Как будет выглядеть следующий код на Pascal? const int INF = 1000000000; * int main() { int n; ... чтение n ... vector &lt;...

1
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3558 / 2253 / 1155
Регистрация: 22.11.2013
Сообщений: 5,931
18.03.2014, 16:31 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Большого смысла в переводе не увидел, кода много, толку -- чуть.
5.
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
const
  LIM=70; W=4; m=5; n=10;
type
  tm=array [1..m,1..n] of integer;
  tmt=array [1..n,1..m] of integer;
var
  a: tm; at: tmt;
  i, j, max: integer;
begin
  Randomize;
  WriteLn('A=');
  for i:=1 to m do begin
    for j:=1 to n do begin
       a[i,j]:=Random(LIM); Write(a[i,j]:W);
    end; WriteLn;
  end;
  WriteLn('A''=');
  for i:=1 to n do begin
    for j:=1 to m do begin
      at[i,j]:=a[j,i]; Write(at[i,j]:W);
    end; WriteLn;
  end; WriteLn('Диаграмма максимумов столбцов:');
  for j:=1 to m do begin
    max:=at[1,j];
    for i:=2 to n do
      if at[i,j]>max then max:=at[i,j];
    Write(max:5,' ');
    for i:=1 to max do Write('*'); WriteLn;
  end;
end.
7.
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
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
const
  UPC: string[70] = 
    'ABCDEFGHIJKLMNOPQRSTUVWXUYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789';
  LOC: string[70] = 
    'abcdefghijklmnopqrstuvwxuyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя0123456789';
type
  TWordStat=record
    w: string[29];
    c: integer;
  end;
  PNode=^TNode;
  TNode=record
    next: PNode;
    d: TWordStat;
  end;
var
  top, p: PNode;
  t: TWordStat;
  s: string;
  done: boolean;
  i, j: integer;
begin
  {Assign(input,'input.txt'); Reset(input);}{<--если нужен ввод из файла}
  top:=nil; t.c:=1;
  while not EOF do begin
    { конец файла в консоли: Ctrl+Z для DOS/Windows, Ctrl+D для Linux }
    ReadLn(s);
    for i:=Length(s) downto 1 do begin
      j:=pos(s[i],UPC);
      if j>0 then s[i]:=LOC[j]
      else if pos(s[i],LOC)=0 then s[i]:=' ';
    end;
    i:=1;
    repeat
      while (i<=Length(s)) and (s[i]=' ') do inc(i);
      j:=i;
      while (i<=Length(s)) and (s[i]<>' ') do inc(i);
      if i>j then begin
        t.w:=Copy(s,j,i-j);
        p:=top;
        while (p<>nil) and (p^.d.w<>t.w) do p:=p^.next;
        if (p<>nil) then inc(p^.d.c)
        else begin
          new(p); p^.d:=t; p^.next:=top; top:=p;
        end;
      end;
    until i>Length(s);
  end;
  if top<>nil then
    repeat
      p:=top; done:=true;
      while p^.next<>nil do begin
        if p^.d.c<p^.next^.d.c then begin
          t:=p^.d; p^.d:=p^.next^.d; p^.next^.d:=t;
          done:=false;
        end;
        p:=p^.next;
      end;
    until done;
  WriteLn('Список слов:');
  p:=top; i:=0;
  while p<>nil do with p^,p^.d do begin
    inc(i,Length(w)); if i>80 then begin i:=0; WriteLn; end;
    Write(w,' '); p:=next;
  end; WriteLn;
  WriteLn('Статистика:');
  p:=top;
  while (p<>nil) and (p^.d.c>=2) do with p^,p^.d do begin
    WriteLn(c:4,' ',w); p:=next;
  end;
  while top<>nil do begin
    p:=top; top:=top^.next;
    Dispose(p);
  end;
end.
14.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  n: longint;
  i: integer;
begin
  Randomize;
  n:=Random(1001)*1000+Random(1001);
  WriteLn(n);
  while n>0 do begin
    for i:=n mod 10 downto 0 do Write('***'); WriteLn;
    n:=n div 10;
  end;
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 16:31
Привет! Вот еще темы с ответами:

Как будет выглядеть эта программа в паскале - Turbo Pascal
if( x*x + y*y &lt; 1 ) return false; if( x*x + y*y &gt; 4 ) return false; if( x &gt;= 0 &amp;&amp; y &lt; -x ) return false; if( x &lt; 0 &amp;&amp; y &lt; x ) return...

Как этот код будет выглядеть на C++ - C++
For i:=0 to FieldsCount-1 do Fields.Clear; Как этот код будет выглядеть на C++

Как код написан VB, будет выглядеть на C# - Visual Basic
Знаю что С# и VB очень похожи , но мне как человеку, который учил только C#,C++, Java, Pascal, VB - не до конца понятен, а отсутствие...

как будет выглядеть код программы? - Delphi
как будет выглядеть код программы? Известны фамилии всех 30 сотрудников фиры и их адреса. Определить, работают ли в фирме люди с одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru