Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2010, 00:23   #1
pro100saniok
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 33
Восклицание Написать на С # задачки

Пожалуйста помогите написать на С # задачки, которые решены на Pascal

1. Дано целое число а и натуральное (целое неотрица-
тельное) число n. Вычислить а в степени n. Другими словами, не-
обходимо составить программу, при исполнении которой значения
переменных а и n не меняются, а значение некоторой другой пере-
менной (например, b) становится равным а в степени n. (При этом
разрешается использовать и другие переменные.)

Решение. Введем целую переменную k, которая меняется от 0
до n, причем поддерживается такое свойство: b = (a в степени
k).

k := 0; b := 1;
{b = a в степени k}
while k <> n do begin
| k := k + 1;
| b := b * a;
end;

Другое решение той же задачи:

k := n; b := 1;
{a в степени n = b * (a в степени k)}
while k <> 0 do begin
| k := k - 1;
| b := b * a;
end;

2. Решить предыдущую задачу, если требуется, чтобы чис-
ло действий (выполняемых операторов присваивания) было порядка
log n (то есть не превосходило бы C*log n для некоторой констан-
ты C; log n - это степень, в которую нужно возвести 2, чтобы по-
лучить n).

Решение. Внесем некоторые изменения во второе из предложен-
ных решений предыдущей задачи:

k := n; b := 1; c:=a;
{a в степени n = b * (c в степени k)}
while k <> 0 do begin
| if k mod 2 = 0 then begin
| | k:= k div 2;
| | c:= c*c;
| end else begin
| | k := k - 1;
| | b := b * c;
| end;
end;

Каждый второй раз (не реже) будет выполняться первый вариант
оператора выбора (если k нечетно, то после вычитания единицы
становится четным), так что за два цикла величина k уменьшается
по крайней мере вдвое.


3. Даны натуральные числа а, b. Вычислить произведение
а*b, используя в программе лишь операции +, -, =, <>.

Решение.
var a, b, c, k : integer;
k := 0; c := 0;
{инвариант: c = a * k}
while k <> b do begin
| k := k + 1;
| c := c + a;
end;
{c = a * k и k = b, следовательно, c = a * b}

4. Дано натуральное (целое неотрицательное) число а и
целое положительное число d. Вычислить частное q и остаток r при
делении а на d, не используя операций div и mod.
Решение. Согласно определению, a = q * d + r, 0 <= r < d.

{a >= 0; d > 0}
r := a; q := 0;
{инвариант: a = q * d + r, 0 <= r}
while not (r < d) do begin
| {r >= d}
| r := r - d; {r >= 0}
| q := q + 1;
end;

5. Последовательность Фибоначчи определяется так:
a(0)= 1, a(1) = 1, a(k) = a(k-1) + a(k-2) при k >= 2. Дано n,
вычислить a(n).

6. Та же задача, если требуется, чтобы число операций
было пропорционально log n. (Переменные должны быть целочислен-
ными.)

Указание. Пара соседних чисел Фибоначчи получается из пре-
дыдущей умножением на матрицу
|1 1|
|1 0|
так что задача сводится к возведению матрицы в степень n. Это
можно сделать за C*log n действий тем же способом, что и для чи-
сел.

7.
То же, если требуется, чтобы количество операций
(выполненных команд присваивания) было бы не более C*n для не-
которой константы С.
Решение. Инвариант: sum = 1/1! +...+ 1/k!, last = 1/k!
(важно не вычислять заново каждый раз k!).


8.
Написать модифицированный вариант алгоритма Евкли-
да, использующий соотношения НОД (a, b) = НОД (a mod b, b) при
a >= b, НОД (a, b) = НОД (a, b mod a) при b >= a.


9.
Даны натуральные а и b, не равные 0 одновременно.
Найти d = НОД (a,b) и такие целые x и y, что d = a*x + b*y.

Решение. Добавим в алгоритм Евклида переменные p, q, r, s
и впишем в инвариант условия m = p*a + q*b; n = r*a + s*b.

m:=a; n:=b; p := 1; q := 0; r := 0; s := 1;
{инвариант: НОД (a,b) = НОД (m,n); m,n >= 0
m = p*a + q*b; n = r*a + s*b.}
while not ((m=0) or (n=0)) do begin
| if m >= n then begin
| | m := m - n; p := p - r; q := q - s;
| end else begin
| | n := n - m; r := r - p; s := s - q;
| end;
end;
if m = 0 then begin
| k :=n; x := r; y := s;
end else begin
| k := m; x := p; y := q;
end;


10.
Решить предыдущую задачу, используя в алгоритме
Евклида деление с остатком.


11. Проверить, является ли заданное натуральное число
n > 1 простым.


вот решения первой задачи :

double b = 0;
Console.WriteLine(" а");
int a = Int32.Parse(Console.ReadLine());
Console.WriteLine("n (Степень) ");
int n = Int32.Parse(Console.ReadLine());
if (n < 0)
{
Console.WriteLine("Переменная n невинного быть меньшая нуля");
}
else
{
b = Math.Pow(a, n);

}
Console.WriteLine("Ответ\n" + b);



Console.WriteLine();

Последний раз редактировалось pro100saniok; 10.09.2010 в 01:04.
pro100saniok вне форума Ответить с цитированием
Старый 10.09.2010, 04:02   #2
Miller-1981
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 89
По умолчанию

50р за задачу icq:340-553-273
Miller-1981 вне форума Ответить с цитированием
Старый 10.09.2010, 08:32   #3
John_Pa9JIbHuK
Заблокирован
 
Регистрация: 15.04.2010
Сообщений: 0
По умолчанию

Готов реализовать недорого
ICQ: 477765794
Mail: rezvans0@yandex.ru
John_Pa9JIbHuK вне форума Ответить с цитированием
Старый 11.09.2010, 13:51   #4
mikefreel
Заблокирован
 
Регистрация: 12.05.2010
Сообщений: 0
По умолчанию

Готов взяться за проект
номер ICQ: 565460353 или 480964456
mikefreelance@rambler.ru
mikefreel вне форума Ответить с цитированием
Старый 11.09.2010, 20:32   #5
Smelee
Новичок
Джуниор
 
Регистрация: 11.09.2010
Сообщений: 0
По умолчанию

Готов выполнить недорого
Пиши, обсудим
email: slava_leanenka@mail.ru
Smelee вне форума Ответить с цитированием
Старый 11.09.2010, 23:55   #6
Mr_skiner
Пользователь
 
Аватар для Mr_skiner
 
Регистрация: 21.05.2010
Сообщений: 56
По умолчанию

ICQ 564076663 или ваши данные мне в личку-обговорим
Mr_skiner вне форума Ответить с цитированием
Старый 12.09.2010, 15:38   #7
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Здравствуйте ! Сделаю быстро и недорого, моя аська 371824579
RIO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать сообщение (Ассемблер )Написать комментарии и определить что выполняет TSR программа 9ino4ka Помощь студентам 3 02.06.2010 16:57
Задачки на Паскале помогите пожалуйста решить 2 задачки, а то отчислят. плиз VADOS2009-1 Помощь студентам 0 03.06.2009 18:11
Поиогите пож-та написать задачки в паскале 4otenado Паскаль, Turbo Pascal, PascalABC.NET 0 26.05.2009 19:11
задача под windows,помогите написать.Надо написать на Borland C++Builder 6. eddddii Помощь студентам 9 23.05.2008 17:04
Помогите написать прогу!Среди заданных целых чисел k, l, m найти пары кратных.Написать по проще чемЭесть vdv08 Паскаль, Turbo Pascal, PascalABC.NET 4 04.04.2008 16:56