Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
1

Перевести код с Паскаля на Си

27.11.2015, 19:18. Просмотров 462. Ответов 14
Метки нет (Все метки)

Думаю Вам не составит труда ). А я запутался)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt;
var N,M:integer;
function Fac(x:integer):longint;
begin
if x=1 then Fac:=1
else fac:=x*fac(x-1);
end;
begin
clrscr;
Write('N=');readln(N);
Write('M<N=');readln(M);
write('N!/(M!*(N-M)!)=',Fac(N)div(Fac(M)*Fac(N-M)));
readln;
end.

А это еще:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  a: array[0..9] of integer;
  i, n, l: integer;
  av: real;
begin
  readln(n);
  for i := 0 to 9 do
  begin
    a[i] := random(25);
    if a[i] < n then
      av := av + a[i];
    l := l + 1;
  end;
  av := av / l;
  writeln('Среднее арифметическое чисел <', n:3, ' =', av:4);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2015, 19:18
Ответы с готовыми решениями:

Каким образом можно перевести код Паскаля в код Фортран?
Здравствуйте уважаемые программисты! Может быть банальная, но довольно сложная проблема - перевод...

Как перевести код с паскаля на Java. Пытался сам но код не хочет работать переведенный
А сам код на паскале работает. Вот код на паскале var i,j,m,c,d: integer; A:array of...

Перевести код с Паскаля на C++
begin var число := ReadInteger('Введите трехзначное натуральное число:'); var (сотни,...

Перевести код из Паскаля в Си++
Переведите пожалуйста из Паскаля в Си++, кому не сложно.

14
2368 / 1779 / 387
Регистрация: 15.12.2013
Сообщений: 7,536
27.11.2015, 19:22 2
Цитата Сообщение от volk010 Посмотреть сообщение
А я запутался)
показывайте код,может коллективно распутаем.
1
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
27.11.2015, 20:44  [ТС] 3
так нечего показывать. полная чушь получилась
0
2368 / 1779 / 387
Регистрация: 15.12.2013
Сообщений: 7,536
27.11.2015, 21:12 4
volk010, тем не менее. Заодно расскажем в чем ошибка.
0
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
27.11.2015, 23:20  [ТС] 5
- Это мой вариант на вторую задачу:

Задание звучит так :
Дан массив. Определить среднее арифметическое всех чисел
меньше заданного.

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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
int random (int N) { return rand() % N; }
 
int main()
{
const int n=(0,1,2,3,4,5,6,7,8,9);
int a[n];
int i,l;
float av;
 
for(i=0;i<n;i++)
 {
    a[i] = random(25);
    if (a[i]<n)
      { 
      av=av+a[i];
    
       l=l+1;
       }
   }
 
   av=av/l;
   printf("\nСреднее арифметическое чисел < %.3f\n", n);
 
system("pause");
}
0
2368 / 1779 / 387
Регистрация: 15.12.2013
Сообщений: 7,536
27.11.2015, 23:24 6
volk010, в чем смысл 8 строки?
что делает:
C++
1
#include <iostream>
в C программе?

и решает ли ваш код поставленную задачу?
0
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
27.11.2015, 23:34  [ТС] 7
S_el, с 8 строкой можно разобраться, n=10.

Это лишнее осталось, забыл убрать
C++
1
#include <iostream>
В том то и дело что не хочет он решать мне задачку.
Не понял до конца в Паскале как.
0
2368 / 1779 / 387
Регистрация: 15.12.2013
Сообщений: 7,536
27.11.2015, 23:36 8
volk010, забудьте про паскаль,пишите на C. Удалось понять на каком этапе программа перестает вести себя так как вы хотите?
0
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
28.11.2015, 00:04  [ТС] 9
Вот ближе стало к действительности:

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
#include <stdio.h>
#include <stdlib.h>
 
int random (int N) { return rand() % N; }
 
int main()
{
int a[10];
int i,n,l;
float av;
 
 printf ("<<Вычисление среднее арифметическое чисел>>\n");
 printf ("Введите число = ");
 scanf ("%d",&n);
 
  for(i=0;i<10;i++)
   {
    a[i] = random(25);
    if (a[i]<n)
        av=av+a[i];   
    l=l+1;
   }
 
  av=av/l;
   
  printf("\nВычисление среднее арифметическое чисел < %d = %.3f\n", n, av);
 
system("pause");
}
0
2368 / 1779 / 387
Регистрация: 15.12.2013
Сообщений: 7,536
28.11.2015, 12:29 10
volk010, не игнорируйте вопросы,если хотите чтобы вам помогли.
Где условие задачи и конкретный вопрос или замечание по коду?
0
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
28.11.2015, 12:58  [ТС] 11
S_el, условие ко второй задаче я написал выше.
Повторю для вас:
Задание звучит так :
Дан массив. Определить среднее арифметическое всех чисел
меньше заданного.
С первой задачей я разобрался сам.
А во второй с формулой что то не могу разобраться, считает не правильно.
Перевести код с Паскаля на Си

а должно быть так: (1+2+3+4)/4= 2.5
Где то вот в этой части ошибка:
C
1
2
3
4
5
6
7
8
{
    a[i] = random(25);
    if (a[i]<n)
        av=av+a[i];   
    l=l+1;
   }
 
  av=av/l;
p/s
игнора нет,просто аврал с этими задачками и я готовился к экзамену.
который был сегодня утром и был сдан успешно).
0
Эксперт PHP
2684 / 2349 / 1098
Регистрация: 14.05.2014
Сообщений: 6,708
Записей в блоге: 1
28.11.2015, 13:00 12
volk010, чему равны av и l изначально? Инициализируйте их нулями и будет вам счастье.
2
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
28.11.2015, 13:05  [ТС] 13
Напишу к первой задачке как будет на Си, пригодится кому то :

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt;
var N,M:integer;
function Fac(x:integer):longint;
begin
if x=1 then Fac:=1
else fac:=x*fac(x-1);
end;
begin
clrscr;
Write('N=');readln(N);
Write('M<N=');readln(M);
write('N!/(M!*(N-M)!)=',Fac(N)div(Fac(M)*Fac(N-M)));
readln;
end.
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
#include <stdio.h>                   
#include <stdlib.h>
 
int factor (int x) 
 { 
  if( x == 0 ) return 1;
  return x * factor (x - 1);
  }
 
main()
{
  int N,M;
  float c;
  
  printf("Введите числа:\n\n");
  printf("N= ");
  scanf("%d",&N);
  printf("M<N= ");
  scanf("%d",&M);
  
  c=factor(N)/(factor(M)*(N-M));
 
  printf("\nN!/(M!*(N-M))= %.2f\n\n", c );
  
  system("pause");
}
0
2368 / 1779 / 387
Регистрация: 15.12.2013
Сообщений: 7,536
28.11.2015, 13:07 14
volk010, прошу прощения,это моя невнимательность.

Вы забыли инициализировать переменные,как вам сказал Kerry_Jr.
И надо подсчет количества нужных элементов тоже перенести в if.
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
#include <stdio.h>
#include <stdlib.h>
 
int random (int N) { return rand() % N; }
 
int main()
{
int a[10];
int i,n,l=0;
float av=0;
 
printf ("<<Вычисление среднее арифметическое чисел>>\n");
printf ("Введите число = ");
scanf ("%d",&n);
printf("%d\n",n) ;
 for(i=0;i<10;i++)
 {
    a[i] = random(25);
    printf("%d %d \n",i,a[i]);
    if (a[i]<n)
    {
        av=av+a[i];   
        l=l+1;
    }
 }
 
 
printf("%d",l);   
printf("\nВычисление среднее арифметическое чисел < %d = %.3f\n", n, av/l);
}
1
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 11
28.11.2015, 13:20  [ТС] 15
S_el, понял .
Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2015, 13:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перевести код с Паскаля на С++
Program proga; uses crt; Type gostinica= record FIO:string; nomer:integer; cena:integer;...

Перевести код с Паскаля на C
var f,g: text; s: string; begin assign(f,'F:\text1.txt'); assign(g,'F:\text2.txt');...

Перевести код с Паскаля на C#
Помогите перевести код с паскаля на C#. Я вроде перевел, но не работает. Код паскаля взят отсюда...

Перевести код с Паскаля на C#
Function h(st: string): integer; Var Sum: longint; I: integer; Begin For i:=0 to length(st) do...


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

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

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