 |
|

02.05.2008, 13:11
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
С нами:
9655526
Репутация:
1821
|
|
Торопился код может быть корявым!
Important: Код писался именно для этого случая!
Код:
program pr7;
uses crt;
const n=6; m=6;
a:array[1..n,1..m] of integer=((0,2,1,2,5,6),
(4,5,7,8,1,8),
(0,6,2,3,3,4),
(5,6,1,9,7,1),
(1,2,3,4,5,6),
(6,5,4,3,2,1));
var
i,j,k:integer;
Begin
For i:=1 to n Do
Begin
For j:=1 to m DO write(a[i,j],' ');
writeln;
end;
For i:=1 to n Do
Begin
For j:=0 to m-1 Do
Begin
If j<3 then Begin
k:=a[i,j+1];
a[i,j+1]:=a[i,n-j];
a[i,m-j]:=k;
end;
end;
end;
writeln;
writeln;
For i:=1 to n Do
Begin
For j:=1 to m DO write(a[i,j],' ');
writeln;
end;
readln;
end.
"Автоматически" меняет местами столбцы!
=============
Как упорядочить думаю догодаешься!
Но если будут сложности, я помогу, только чуть позже!
Последний раз редактировалось De-visible; 02.05.2008 в 15:58..
|
|
|

02.05.2008, 18:43
|
|
Участник форума
Регистрация: 02.02.2008
Сообщений: 106
С нами:
9617399
Репутация:
55
|
|
Не коверкай рiдну мову...
Если кто-то из русскоговорящих возметься:
дано n (1<n<=100) точка на площади координат (xi, yi) (i=1,n). Точки образуют многоугольник з n углами и n сторонами.
Исходные данные
Определить:
a) Средняя арифметичная длина стороны многоугольника
b) Количество номеров сторон, что пересекают ось координат
p.s. за бесплатно врядле кто возметься...
|
|
|

02.05.2008, 19:11
|
|
Познавший АНТИЧАТ
Регистрация: 21.03.2007
Сообщений: 1,200
С нами:
10074686
Репутация:
1204
|
|
Сейчас накатал, возможны косяки, проверить нет возможности.
PS: на плюсы перевести думаю справишься..
Код:
#include <stdio.h>
#include <math.h>
void main(void)
{
unsigned int x_point[100], y_point[100];
int lenght = 0, amount = 0;
for (int i = 0; i < 100; i++)
{
printf("point %d: enter xi\n", i + 1);
scanf("%d", &x_point[i]);
printf("point %d: enter yi\n", i + 1);
scanf("%d", &y_point[i]);
}
for (int i = 0; i < 99; i++)
{
if (x_point[i] > 0 && x_point[i + 1] < 0)
amount++;
if (x_point[i] < 0 && x_point[i + 1] > 0)
amount++;
if (y_point[i] > 0 && y_point[i + 1] < 0)
amount++;
if (x_point[i] < 0 && x_point[i + 1] > 0)
amount++;
lenght += sqrt(abs(x_point[i + 1] - x_point[i]) * abs(x_point[i + 1] - x_point[i]) + abs(y_point[i + 1] - y_point[i]) * abs(y_point[i + 1] - y_point[i]));
}
printf("amount: %d", amount);
printf("lenght: %d", lenght / 100);
return;
}
|
|
|

02.05.2008, 21:55
|
|
Новичок
Регистрация: 14.03.2008
Сообщений: 28
С нами:
9556987
Репутация:
2
|
|
помогите с задачай по текстовым файлам (ПАСКАЛЬ)
Дан файл, содержащий текст и арифметические выражения
вида а®b, где ® — один из знаков +, —, *, /. Выписать все арифметические выражения и вычислить их значения.
з.ы. почему мою тему удалили
De-visible:Правильный ответ уже прозвучал!
http://forum.antichat.ru/showpost.php?p=675710&postcount=481
Последний раз редактировалось De-visible; 05.05.2008 в 11:22..
|
|
|

03.05.2008, 13:11
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами:
9746420
Репутация:
119
|
|
Помогите найти ошибку в коде:
Код:
typedef struct ip_header {
UCHAR iph_verlen;
UCHAR iph_tos;
USHORT iph_length;
USHORT iph_id;
USHORT iph_offset;
UCHAR iph_ttl;
UCHAR iph_protocol;
USHORT iph_xsum;
ULONG iph_src;
ULONG iph_dest;
} IPHeader;
Заполняю ИП заголовок:
Код:
ip_hd->iph_verlen = 0x45;
ip_hd->iph_tos = 0x01;
ip_hd->iph_length = htons(40);
ip_hd->iph_id = htons(0x0800);
ip_hd->iph_offset = 0x0;
ip_hd->iph_ttl = 0xff;
ip_hd->iph_protocol = 0x06;
ip_hd->iph_xsum = 0x00;
ip_hd->iph_dest = inet_addr("192.168.0.1");
При заполнение вылетает экзепшн(Access violation). Не могу понять почему происходит... 
|
|
|

03.05.2008, 15:43
|
|
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
С нами:
10439609
Репутация:
71
|
|
При заполнение вылетает экзепшн(Access violation). Не могу понять почему происходит...
ты память то выделил?
|
|
|

03.05.2008, 15:59
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами:
9746420
Репутация:
119
|
|
Сообщение от da_ff
ты память то выделил?
Для структуры? Извините за глупый вопрос: А как? 
|
|
|

03.05.2008, 19:44
|
|
Познающий
Регистрация: 22.02.2008
Сообщений: 62
С нами:
9587964
Репутация:
52
|
|
Ну тогда попробуй так:
Код:
program qwer;
var
s:string;
a:char;
infile,outfile:text;
n,m,c,i:integer;
begin
assign(infile,'input.txt');
assign(outfile,'output.txt');
reset(infile);
rewrite(outfile);
repeat
readln(infile,s);
for i:=1 to length(s) do begin
a:=s[i];
case a of
'+':begin
val(Copy(s,1, i-1),m,c);
val(Copy(s,i+1,length(s)-i),n,c);
write(outfile,s+'=');
writeln(outfile,m+n);
end;
'-':begin
val(Copy(s,1, i-1),m,c);
val(Copy(s,i+1,length(s)-i),n,c);
write(outfile,s+'=');
writeln(outfile,m-n);
end ;
'*':begin
val(Copy(s,1, i-1),m,c);
val(Copy(s,i+1,length(s)-i),n,c);
write(outfile,s+'=');
writeln(outfile,m*n);
end ;
'/':begin
val(Copy(s,1, i-1),m,c);
val(Copy(s,i+1,length(s)-i),n,c);
write(outfile,s+'=');
writeln(outfile,m/n:8:2);
end ;
end;
end;
n:=0;
m:=0;
until eof(infile);
close(outfile);
close(infile);
end.
|
|
|

04.05.2008, 10:38
|
|
Новичок
Регистрация: 26.04.2008
Сообщений: 12
С нами:
9495607
Репутация:
2
|
|
помгите с двумя задачками плиз
1) через процедуры:
Составить программу для нахождения чисел из интервала [M, N], имеющих наибольшее количество делителей.
2) через функции:
Дано: натуральное n, целые неотрицательные a1, …, an. Рассмотреть отрезки последовательности a1, …, an (подпоследовательности идущих подряд членов), состоящей полных квадратов. Для проверки использовать функцию primer(a), описанную таким образом, что
.............1, если a – полный квадрат,
primer=
.............0, в противном случае.
De-visible: Реализация на Паскаль...
В следующий раз, не забывайте указать язык программирования, здесь нет телепатов
Последний раз редактировалось De-visible; 04.05.2008 в 12:06..
|
|
|

04.05.2008, 13:05
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами:
10021597
Репутация:
905
|
|
Catsy, первая задача
Код:
program deliteli;
{Составить программу для нахождения чисел из интервала [M, N],
имеющих наибольшее количество делителей.}
procedure GetCount (x : integer; var count : integer);
{Подсчет кол-ва делителей для каждого числа}
var
i, j : integer;
begin
i := 2;
count := 0;
j := x div 2;
while (i <= j) do begin
if x mod i = 0 then begin
write (i, ' ');
inc (count);
x := x div i;
end else
inc (i);
end;
writeln;
end;
procedure PrintNumbers (x, y : array of integer; count, index : integer);
var
i : integer;
begin
for i := 0 to count - 1 do
if y [i] = index then
writeln (x [i]);
end;
var
n1, n2, i, j, count, max : integer; {Первое, последнее число, счетчики цикла, кол-во делителей, максимальное кол-во делителей}
numbers : array [1..255] of integer; {Массив для чисел}
del_count : array [1..255] of integer; {Массив для количества делителей каждого числа}
begin
write ('Введите первое число n1: ');
readln (n1);
write ('Введите последнее число n2: ');
readln (n2);
count := 0;
max := 0;
j := 1;
for i := n1 to n2 do begin
numbers [j] := i;
write ('Делители числа ', i, ': ');
GetCount (i, count);
del_count [j] := count;
if count > max then
max := count;
writeln ('Количество: ', count);
inc (j);
end;
writeln ('Максимальное число делителей: ', max);
writeln ('Числа, имеющие наибольшее кол-во делителей');
PrintNumbers (numbers, del_count, n2 - n1 + 1, max);
end.
Условие второй как-то не совсем понял 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|