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

Из Pascal в С - C++

Восстановить пароль Регистрация
 
Elena0602
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
20.03.2011, 14:57     Из Pascal в С #1
Люди, пожалуйста помогите переделать с Pascal на С, используя функции!

Код на Pascale

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
76
77
78
79
80
81
82
83
84
85
86
87
var
 A: array[1..16] of integer;
 B: array[1..20] of integer;
 C: array[1..36] of integer;
 D: array[1..6,1..6] of real;
 Amin, Bmin, i, j, k: integer;
Begin
 Randomize;
 k:= 0;
 Writeln('Вектор А:');
 A[1]:=random(49)+10;
 if random(3)=2 then A[1]:=A[1]*-1;
 Amin:=A[1];
 if (A[1] mod 4)=0 then inc(k);
 Write(A[1],' ');
 For i:=2 to 16 do
  Begin
   A[i]:=random(49)+10;
   if random(3)=2 then A[i]:=A[i]*-1;
   write(A[i],' ');
   if A[i]<Amin then Amin:=A[i];
   if (A[i] mod 4)=0 then inc(k);
  End;
 if k>0 then k:=16;
 Writeln;
 Writeln('Вектор B:');
 B[1]:=random(49)+10;
 if random(3)=2 then B[1]:=B[1]*-1;
 Bmin:=B[1];
 if (B[1] mod 4)=0 then inc(k);
 Write(B[1],' ');
 For i:=2 to 20 do
  Begin
   B[i]:=random(49)+10;
   if random(3)=2 then B[i]:=B[i]*-1;
   write(B[i],' ');
   if B[i]<Bmin then Bmin:=B[i];
   if (B[i] mod 4)=0 then inc(k);
  End;
 if k>16 then
  begin
   writeln;
   Writeln('В обоих массивах есть кратные 4м.');
   writeln('Amin= ',Amin);
   writeln('Вектор С:');
   For i:=1 to 36 do
    C[i]:=0;
   j:=0;
   For i:=1 to 16 do
    if A[i]>0 then
     begin
      inc(j);
      C[j]:=A[i]*Amin;
      write(C[j],' ');
     end;
   if j=j then j:=j else j:=j;
   For i:=1 to 20 do
    if B[i]>0 then
     Begin
      inc(j);
      C[j]:=B[i]*Amin;
      write(C[j],' ');
     End;
   writeln;
  end Else
  Begin
   writeln;
   Writeln('Кратных 4м нет в обоих массивах');
   writeln('Bmin= ',Bmin);
   Writeln('Матрица D:');
   j:=0;
   For i:=1 to 16 do
    Begin
     inc(j);
     D[(j div 6)+1,j-((j div 6)*6)]:=A[i]/Bmin;
     write(D[(j div 6)+1,j-((j div 6)*6)]:3:2,' ');
     if j mod 6 = 0 then writeln;
    End;
   For i:=1 to 20 do
    Begin
     inc(j);
     D[(j div 6)+1,j-((j div 6)*6)]:=B[i]/Bmin;
     write(D[(j div 6)+1,j-((j div 6)*6)]:3:2,' ');
     if j mod 6 = 0 then writeln;
    End;
  End;
End.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2011, 14:57     Из Pascal в С
Посмотрите здесь:

C Pascal'я на С++ C++
C Pascal на C++ C++
C++ Pascal to C++
Pascal to С++ C++
C++ Из Pascal в C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
20.03.2011, 14:58     Из Pascal в С #2
Сформулируйте задачу.
Возможно, у кого-то есть готовое решение на Си.
Elena0602
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
20.03.2011, 15:02  [ТС]     Из Pascal в С #3
Даны вектор А[1:16] и B[1:20]. Если в обеих векторах есть элементы, кратные 4, то сформировать вектор С из положительных элементов обеих векторов, умноженных на Amin , иначе сформировать матрицу D[1:6,1:6] из элементов обоих векторов, поделенных на Bmin.
Dmitry_gdv
 Аватар для Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 351
20.03.2011, 15:47     Из Pascal в С #4
задачка не сложная - можно даже не переписывать, а сделать заново.

Или надо именно переписать - логика в логику?
Elena0602
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
20.03.2011, 16:29  [ТС]     Из Pascal в С #5
Нет, можно и с вашей логикой...))) лишь бы на С и с использоыванием функций.
Dmitry_gdv
 Аватар для Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 351
20.03.2011, 16:32     Из Pascal в С #6
на С++ пойдёт?
Elena0602
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
20.03.2011, 16:33  [ТС]     Из Pascal в С #7
Ну давайте)))
Dmitry_gdv
 Аватар для Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 351
20.03.2011, 16:54     Из Pascal в С #8
щас попробуемс ...

Добавлено через 13 минут
нарисовался 1 вопрос - какой диапазон чисел должен быть записан в векторы А и Б?
Elena0602
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
20.03.2011, 17:06  [ТС]     Из Pascal в С #9
в задании точно не указано, берите любой
IrineK
Заблокирован
20.03.2011, 17:21     Из Pascal в С #10
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
#include<conio.h>
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
#define N 16
#define M 20
#define K 6
 
int minEl(int Ar[],int DIM)
{   int min,i;
    min = 40;
    for(i=0;i<DIM;i++)
        if(Ar[i]<min) min=Ar[i];
    return min;
}
 
bool mult4(int Ar[],int DIM)
{   int i;
    for(i=0;i<DIM;i++)
        if(Ar[i]%4==0) 
        {   return true;
            break;
        }
    return false;
}
 
int main()
{   int i,j,Amin, Bmin,relay,A[N],B[M],C[N+M];
    double D[K][K];
    srand(time(NULL));
    
    relay=rand()%2+3;
 
    printf("Array A:\n");
    for(i=0;i<N;i++)
    {   A[i]=rand()%relay+1;
        printf("%3d",A[i]);
    }
 
    printf("\n\nArray B:\n");
    for(i=0;i<M;i++)
    {   B[i]=rand()%30+1;
        printf("%3d",B[i]);
    }
    
    Amin = minEl(A,N);
    Bmin = minEl(B,M);
    
    j=0;
    if(mult4(A,N) && mult4(B,M))
    {   for(i=0;i<N;i++)
            if(A[i]>0)
            {   C[j]=A[i]*Amin;
                j++;
            }
        for(i=0;i<M;i++)
            if(B[i]>0)
            {   C[j]=B[i]*Amin;
                j++;
            }
        printf("\n\nBoth in A and B multiples of 4 found\n");
        printf("Amin = %4d",Amin);
        printf("\nArray C:\n");
        for(i=0;i<j;i++)
            printf("%3d",C[i]);
    }
    else
    {   for(i=0;i<N;i++)    
        {   C[j]=A[i];
            j++;
        }
        for(i=0;i<M;i++)
        {   C[j]=B[i];
            j++;
        }
        for(i=0;i<N+M;i++)
            D[i/K][i%K]=1.0*C[i]/Bmin;
        printf("\n\nEither in A or B multiples of 4 NOT found\n");
        printf("Bmin = %4d",Bmin);
        printf("\nArray D:\n");
        for(i=0;i<K;i++)
        {   for(j=0;j<K;j++)
                printf("%7.2lf",D[i][j]);
            printf("\n");
        }
    }
 
    getchar();
    return 0;
}
Dmitry_gdv
 Аватар для Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 351
20.03.2011, 18:02     Из Pascal в С #11
Цитата Сообщение от Elena0602 Посмотреть сообщение
Даны вектор А[1:16] и B[1:20]. Если в обеих векторах есть элементы, кратные 4, то сформировать вектор С из положительных элементов обеих векторов, умноженных на Amin , иначе сформировать матрицу D[1:6,1:6] из элементов обоих векторов, поделенных на Bmin.
Вижу, что вам уже сделали, но всё - таки если уже начал, то хочу закончить.
Вопрос следующий - матрицу D[6][6] сформировать на указанных условиях не получится, так как размерности массивов не совпадают.
Так какие элементы должны присутствовать в массиве D[6][6]?
Elena0602
2 / 2 / 0
Регистрация: 04.03.2010
Сообщений: 57
20.03.2011, 18:09  [ТС]     Из Pascal в С #12
Спасибо огромное!!!
А большое отличие от С???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2011, 18:19     Из Pascal в С
Еще ссылки по теме:

из Pascal в C++ C++
C++ Pascal -> C++
C++ Из Pascal в C++

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

Или воспользуйтесь поиском по форуму:
Dmitry_gdv
 Аватар для Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 351
20.03.2011, 18:19     Из Pascal в С #13
нет, от С не очень отличается.
Yandex
Объявления
20.03.2011, 18:19     Из Pascal в С
Ответ Создать тему
Опции темы

Текущее время: 14:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru