XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Трактир
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
G_Unit

offline
Опыт: 314
Активность:
Задача на Pascal'e
Всем доброго времени суток! Как многие знают, скоро у студентов начинается сессия, поэтому пришло время сдавать задолжности. Так вот у меня возникла огромная проблема с сдачей работы по программированию на Borland Pascal. Дело в том, что я никак не могу сделать два задания. Так что взываю о помощи, вот задания :
1)Вывести на экран таблицу первых N степеней числа А.
2)Распечатать произведеие чисел А и В, изменяющихся от 11 и -25 с шагом -3 и 5 соответсвенно до тех пор, пока это произведение отрицательное число.
Вот...необходимо написать программный код, как бы он выглядил в самом Паскале. Задачи решаются с помощью оператора цикла(FOR)...вот только как...Прошу у вас огромной помощи, кому не тяжело помогите.

Отредактировано Q, 23.04.2008 в 23:39.
Старый 19.04.2008, 22:34
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
» code
Код:
#include <stdio.h>
#include <conio.h>

void Pow(double A, unsigned N)
{
  double B; unsigned i;
  printf("\npow  0: A = 1");
  for(i=1,B=1;i<=N;i++)
  {
    B*=A;
    printf("\npow %2u: A = %.4lf",i,B);
  }
}

void Table(void)
{
  int A,B,C;
  printf("\n\nSource numbers: 11, -25; Step: -3, 5\nA*B table:\n\n");
  for(A=11,B=-25;(C=A*B)<0;A+=-3,B+=5)
  printf("A (%5d) * B (%5d) = C (%5d)\n",A,B,C);
  printf("A (%5d) * B (%5d) = C (%5d) !\n",A,B,C);
}

void main(void)
{
  double A; unsigned N;
  //
  clrscr();
  printf("Enter real num A, integer num Pow:\n");
  scanf("%lf%u",&A,&N);
  Pow(A,N);
  //
  getch();
  Table();
  //
  printf("\nPress any key to leave");
  getch();
}
паскаль я не знаю, вот реализация в си. Впринципе, нетрудно провести параллели между конструкциями.
Старый 19.04.2008, 23:47
G_Unit

offline
Опыт: 314
Активность:
Спасибо конечно, но про С++ я знаю ровно столько, сколько африканские дети о варкрафте. Извини...
Старый 19.04.2008, 23:49
G_Unit

offline
Опыт: 314
Активность:
Ну ребят, неужели никто не сечет в паскале? пожалуйста помогите, для меня это очень важно
Старый 20.04.2008, 18:25
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
Цитата:
Сообщение от G_Unit
Ну ребят, неужели никто не сечет в паскале? пожалуйста помогите, для меня это очень важно


сомневаюсь, что секущие в паскале играют в варкрафт ...хотя знающий C++ нашёлся xD
Старый 20.04.2008, 18:43
adic3x

offline
Опыт: 108,439
Активность:
ну вообще елементарные задачи, т.е. тупо циклы и все
Старый 20.04.2008, 19:20
J
expert
offline
Опыт: 48,447
Активность:
могу на си++ си# бейсике, или даже на джазе, но на паскале нет...:)
Старый 20.04.2008, 19:22
G_Unit

offline
Опыт: 314
Активность:
Эх чует мое сердце придется идти завтра на консультацию :((
Старый 20.04.2008, 19:46
J
expert
offline
Опыт: 48,447
Активность:
вот на c# ))
Код:
void Func1(float A, int N)
{
    float B = 1; int i;
    for (i = 0; i <= N; i++)
    {
        B *= A;
        Console.WriteLine("\n{0}^{1} = {2}", A, i, B);
    }
}

void Func2()
{
    int A = 11, B = -25;
    while(A * B < 0)
    {
        Console.WriteLine("\n{0} * {1} = {2}", A, B, A * B);
        A -= 3;
        B += 5;
    }
 }
Старый 20.04.2008, 19:54
G_Unit

offline
Опыт: 314
Активность:
Ужас...если честно для меня это набор циферок и скобочек :) но провести соответствия с паскалем ну никак...не получается.

Отредактировано Q, 23.04.2008 в 23:39.
Старый 20.04.2008, 19:58
J
expert
offline
Опыт: 48,447
Активность:
на джазе
Код:
function MessageBox takes string Str returns nothing
    call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 10, Str)
endfunction 

function Func1 takes real A, integer N returns nothing
    local real B = 1
    local integer i = 0
    loop
        exitwhen i > N
        set B = B * A
        call MessageBox(R2S(A)+"^"+I2S(i)+" = "+R2S(B))
        set i = i + 1
    endloop
endfunction 
 
function Func2 takes nothing returns nothing
    local integer A = 11
    local integer B = -25
    loop
        exitwhen A * B >= 0
        call MessageBox(I2S(A)+"*"+I2S(B)+" = "+I2S(A*B))
        set A = A - 3
        set B = B + 5
    endloop
endfunction
подажди тоадкопа, он тебе на асемблере напишт:)

Jon добавил:
брось, уже 3 варианта на языках разных дано, уж както можно провести паралеь с поскалем, я просто поскаль вообще не помню и хз как он выглядит даже примерно...
Старый 20.04.2008, 20:07
Doberman341
Базару нет...
offline
Опыт: 831
Активность:
Первая прога:
Код:
const N=10;
var a,b,i,j: integer;
begin
readln(a);
b:=a;
  for i:=2 to N do
    begin
      for j:= 2 to i do 
        b:= b*a;
      writeln(a+'^'+i+'='+b+' ');
      b:=a;
    end;
end.


Вторая:
Код:
var a,b,j: integer;
begin
a:=11;
b:=-25;
repeat
  j:=a*b;
  a:=a-3;
  b:=b+5;
  writeln(j+' ');
until j>=0;
end.


Компилятора щас нет, проверить не могу, так что возможны ошибки.
Старый 20.04.2008, 20:09
G_Unit

offline
Опыт: 314
Активность:
Ой спасибо тебе большущее, сейчас буду тестить.
Старый 20.04.2008, 20:50
Doberman341
Базару нет...
offline
Опыт: 831
Активность:
G_Unit, во фрагменте:

repeat
j:=a*b;
a:=a-3;
b:=b+5;
writeln(j+' ');
until j>=0;
end.
надо выделенный фрагмент заменить на j<0
Старый 20.04.2008, 21:00
G_Unit

offline
Опыт: 314
Активность:
Так начну по порядку : первая задача работает почти как часы, вот только в строчке writeln(a+'^'i'='b' ') выдается ошибка, я ее решил заменить на writeln(b) и все заработало. Я думаю что ошибка кроется где-то в этом ''.т.е в апострофах, ну это ладно, главное все работает. Вторая задача тоже отказалась запускаться в этом месте writeln(j+' ') я ее заменил на writeln(j), программа опять же запустилась, но она выводит произведение один раз, тоесть срабатывает один раз...я думаю тут без цикла все таки не обойтись...
Старый 20.04.2008, 21:39
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
И всё-таки не j<0, а j>=0.
Старый 20.04.2008, 22:00
G_Unit

offline
Опыт: 314
Активность:
УРА ТОВАРИЩИ! Благодаря действиям Doberman341 и DFlyer'a удалось сделать сложнейшее практическое задание. Благодарю всех, кто откликнулся, спасибо за помощь.
Старый 20.04.2008, 22:43
Skynex

offline
Опыт: 12,348
Активность:
G_Unit если что надо по паскале спрашивай. помогу чем смогу. паскаль знаю хорошо. даже отл ично.
Старый 21.04.2008, 09:32
tysch_tysch
Работаем
offline
Опыт: отключен
открыто по просьбе автора
Старый 23.04.2008, 23:02
Q

offline
Опыт: 360,164
Активность:
Цитата:
провести соответствия с паскалем ну никак...не получается.


В таком случае я думаю проблема не в незнании паскаля, а в отсутствии мозга. Русский язык подучи, пригодится.
Старый 23.04.2008, 23:40
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 15:50.