Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

22.11.2009, 18:38
|
|
Новичок
Регистрация: 27.07.2009
Сообщений: 5
Провел на форуме: 98222
Репутация:
0
|
|
Всем привет! У меня 5 лабараторных! Они сделаны только криво работают, очень прошу посмотрите что не так в коде!:
Лаба 8
Задание:Дан массив D(15) элементы массива который больше в 5 уменьшить в 3 раза , а остальные элементы увеличить на 4.
Моё решение:
Program PR8;
Uses Crt;
Const n=15;
Var
D:array [1..n] of integer;
b,i:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
D[i]:=random(20)-10;
write(D[i]:4);
end;
writeln;
for i:=1 to n do
begin
IF D[i]>5 then D:=D[i]/3 else b:=D[i]+4;
writeln (6:4:2);
end;
writeln;
readln;
end.
Перед else выдаёт ошибку.
Лаба 9
Задание: Дан массив E(11) найти произведение отрицательных элементов в массиве.
Моё решение:
Program PR9;
Uses Crt;
Const n=11;
Var
E:array [1..n] of integer;
P,i:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
E [i]:=random (10)-5;
writeln(E[i]:5);
end;
writeln;
P:=1;
for i:=1 to n do
begin
IF E [i]>0 then P:=P*E[i];
end;
writeln ('p=' , p:5);
readln;
end.
Работает но коряво, проверте просто.
Лаба 10
Задание: Дан массив (V10) найти полусумму нечётных эл-ов массива.
Моё решение:
Program PR10;
Uses Crt;
Const n=10;
Var
V:array [1..n] of integer;
i,d,s: integer;
sr:real;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
V[i]:=random(20);
writeln(V[i]:3);
end;
writeln;
for i:=1 to n do
begin
s:=0;
IF V[i] MOD 2=1 then s:=s+V[i];
sr:=s/2;
end;
writeln ('sr=',sr:5:3);
readln;
end.
Опять же, просто проверьте.
Лаба 11
Задания нету) Есть тока решение, просмотрите пожалуйста сам код. Программа работает но криво =\
Program PR11;
Uses Crt;
Const n=3;m=4;
var
D:array [1..n , 1..m] of integer;
j,i,u:integer;
b:real;
begin
TextAttr:=$4B;ClrScr;
for j:=1 to n do
begin
for i:=1 to n do
begin
D[i,j]:=random(20)-10;
write (D[i,j]:u);
end;
writeln;
end;
for j:=1 to n do
begin
IF D[i,j]<3 then b:=D[i,j]+3 else b:=D[i,j]/12;
writeln (b:4:2);
end;
writeln;
readln;
end.
Лаба 12
Задание
Дан массив O(15,3) Найти произведение отрицательных элементов массива и подсчитать их количество.
Решение:
Program PR12;
Uses Crt;
Const n=5;m=3;
Var
O:array [1..n, 1..m] of integer;
i,j,p,k:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
begin
for i:=1 to n do
begin
O[i,j]:=random(20)-10;
write(O[i,j]:4);
end;
writeln;
end;
p:=1;
k:=0;
for i:=1 to n do
for j:=1 to m do
begin
IF O[i,j]<0 then p:=p*O[i,j];
K:=K+1;
end;
writeln ('p=',p:5);
writeln ('k=',k);
readln;
end.
опять же, проверьте программу, работает коряво)
|
|
|

22.11.2009, 20:27
|
|
Новичок
Регистрация: 09.04.2007
Сообщений: 1
Провел на форуме: 20994
Репутация:
1
|
|
В лабе 8 по-хорошему должно быть так:
Код:
Program PR8;
Uses Crt;
Const n=15;
Var
D:array [1..n] of integer;
b,i:integer;
begin
TextAttr:=$4B; // зачем это вообще не знаю...
ClrScr;
randomize;
for i:=1 to n do
begin
D[i]:=random(20)-10;
write(D[i]:4);
end;
writeln;
for i:=1 to n do
begin
IF D[i]>5 then D[i]:=D[i] div 3 // так как у нас массив интежеров.
else D[i]:=D[i]+4;
writeln (D[i]:4:2);
end;
writeln;
readln;
end.
В лабе 9 вместо того, чтоб искать произведение отрицательных элементов - ищет положительные.
Код:
Лаба 12
Задание
Дан массив O(15,3) Найти произведение отрицательных элементов массива и подсчитать их количество.
Решение:
Program PR12;
Uses Crt;
Const n=5;m=3; //тут указывается, что матрица у тебя 5 на 3 а не 15 на 3.
Var
O:array [1..n, 1..m] of integer;
i,j,p,k:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin // здесь не было for по j
for j:=1 to m do
begin
O[i,j]:=random(20)-10;
write(O[i,j]:4);
end;
writeln;
end;
p:=1;
k:=0;
for i:=1 to n do
for j:=1 to m do
begin
IF O[i,j]<0 then p:=p*O[i,j];
K:=K+1; // это можно заменить на inc(K);
end;
writeln ('p=',p:5);
writeln ('k=',k);
readln;
end.
А остальное вроде правильно.
Помог бы кто мне с моей лабой... В которой нужно разработать компилятор языка похожего на пхп... Скорее даже не компилятор, а транслятор в ассемблерный код.
Последний раз редактировалось Muxa1L; 22.11.2009 в 20:40..
|
|
|

22.11.2009, 22:54
|
|
Постоянный
Регистрация: 15.08.2006
Сообщений: 404
Провел на форуме: 3811682
Репутация:
641
|
|
Помогите пожалуйста сделать работу. Язык Си. Буду очень благодарен помощи.
Задачка:
Создать оконное приложение. В клиентской области осуществить вывод графика предложенной вам функции. График функции должен быть дополнен координатными осями с указанием единичных отрезков. Создать диалоговое окно, позволяющее производить выбор диапазона вывода значений функции и осуществлять подписи на осях графика. Создать диалоговое окно, позволяющее производить масштабирование графика. Создать диалоговое окно, позволяющее производить смещение центра координат графика. Создать диалоговое окно, позволяющее изменять задаваемые параметры функции. Создать диалоговое окно в котором можно будет задавать цвета графика и координатных осей, и стиль линий для координатных осей.
Рисунок варианта:
http://img130.imageshack.us/img130/9003/clipimage002f.gif
|
|
|

23.11.2009, 14:24
|
|
Познающий
Регистрация: 02.09.2007
Сообщений: 67
Провел на форуме: 521298
Репутация:
20
|
|
Матрицу K(m,n) заполнить слудующим образом. Элементам, находящимся на периферии (по периметру матрицы), присвоить значение периметру оставшейся матрицы - значение 2 и т.д. до заполнения матрицы.
Это как я понял должно быть что-то вроде:
0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 0
0 1 9 9 9 9 9 9 1 0
0 1 9 3 3 3 3 9 1 0
0 1 9 3 2 2 3 9 1 0
0 1 9 3 2 2 3 9 1 0
0 1 9 3 3 3 3 9 1 0
0 1 9 9 9 9 9 9 1 0
0 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0
Собственно, это сделал.
Дальше:
Рассматривая результат предыдущей задачи, как нумерацию слоев матрицы, сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.
То есть если было
10 0 0 0 0 0 0 0 0 0
10 2 1 1 1 1 1 1 1 0
10 1 3 9 9 9 9 9 1 0
10 1 9 4 3 3 3 9 1 0
10 1 9 3 5 2 3 9 1 0
10 1 9 3 2 2 3 9 1 0
10 1 9 3 3 3 3 9 1 0
10 1 9 9 9 9 9 9 1 0
10 1 1 1 1 1 1 1 1 0
10 0 0 0 0 0 0 0 0 0
Должно стать:
10 10 0 0 0 0 0 0 0 0
10 1 2 1 1 1 1 1 1 0
10 1 9 3 9 9 9 9 1 0
10 1 9 3 4 3 3 9 1 0
10 1 9 3 2 5 3 9 1 0
10 1 9 3 2 2 3 9 1 0
10 1 9 3 3 3 3 9 1 0
10 1 9 9 9 9 9 9 1 0
10 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0
Вот что получилось:
Код:
Program Neprogram;
type K=array [0..10,0..10] of integer;
Procedure zapolnenie(var x:K);
Var m,n,gran,znach,i:integer;
Begin
randomize;
gran:=0;
for i:=1 to 10 do
begin
znach:=trunc((10-1)*random+1);
gran:=gran+1;
for m:=1+gran to 10-gran do
for n:=1+gran to 10-gran do
x[m,n]:=znach;
end;
end;
Procedure povorot(var x:K); //процедура поворота
Var m,n,gran,i,buff,a:integer;
Begin
x[1,1]:=A; //Это чтоб проверить
x[2,1]:=A; поворачивает или нет.
x[3,1]:=A;
x[4,1]:=A;
x[5,1]:=A;
x[6,1]:=A;
x[7,1]:=A;
x[8,1]:=A;
x[9,1]:=A;
x[10,1]:=A;
gran:=0; //Изначально грань = 0
for i:=1 to 5 do //выполняем для x/2 слоев,
begin в нашем случае для 5
buff:=x[n+gran,m+gran]; //сохраняем верхнее левое значение
//считаем левую границу периферии
n:=1+gran;
for m:=1+gran to 9-gran do
x[m,n]:=x[m+1,n];
//нижнюю
m:=10-gran;
for n:=1+gran to 9-gran do
x[m,n]:=x[m,n+1];
//правую
n:=10-gran;
for m:=10-gran downto 2+gran do
x[m,n]:=x[m-1,n];
//верхнюю
m:=1+gran;
for n:=10-gran downto 3+gran do
x[m,n]:=x[m,n-1];
x[n+gran+1,m+gran]:=buff;//возвращаем утерянное значение
gran:=gran+1; //увеличиваем грань
end;
end;
Var x:K;
m,n:integer;
Begin
zapolnenie(x);
for m:=1 to 10 do
begin
writeln(' ');
for n:=1 to 10 do
write(x[m,n],' ');
end;
writeln(' ');
povorot(x);
writeln(' ');
for m:=1 to 10 do
begin
writeln(' ');
for n:=1 to 10 do
write(x[m,n],' ');
end;
writeln(' ');
end.
Пишет ошибку на 35 строке:
Код:
buff:=x[n+gran,m+gran];
Код:
»22098432 - выход за границы диапозона изменения индекса 0..10
Не могу сообразить почему :hmm:
|
|
|

23.11.2009, 16:40
|
|
Новичок
Регистрация: 06.08.2009
Сообщений: 9
Провел на форуме: 19884
Репутация:
0
|
|
привет момогите с задачками на С++
=)
1.Создать класс студент, который имеет имя, курс и идентификационный номер. Определить конструкторы, деструктор и функцию печати. Создать public-производный класс - студент-дипломник, который содержит тему диплома. Определить конструкторы за умалчиванием и с разным числом параметров, деструкторы, функцию печати. Определить функции переназначения названия диплома и идентификационного номера.
2. Создать класс комната, которая имеет площадь. Определить конструктор и метод доступа. Создать класс однокомнатная квартира, которая содержит комнату и кухню (ее площадь), этаж (комната содержится в классе однокомнатная квартира). Определить конструкторы, методы доступа. Определить public-производный класс однокомнатных квартир разных городов (дополнительный параметр - название города). Определить конструкторы, деструктор и функцию печати.
буду очень благодарен!!
|
|
|

24.11.2009, 20:47
|
|
Постоянный
Регистрация: 13.02.2008
Сообщений: 505
Провел на форуме: 2916750
Репутация:
277
|
|
Задача по С++!
Определить класс квадратная матрица. В класс включить два конструктора для определения матрицы по количеству элементов и путем копирования другой матрицы. Предусмотреть функцию нахождения седловой точки матрицы и функцию, меняющую местами элементы матрицы, симметричные относительно побочной диагонали.
Определить класс вектор. В класс включить два конструктора для определения вектора по его размеру и путем копирования другого вектора. При задании вектора по его размеру предусмотреть его заполнение случайными числами.
Определить операции над векторами:
| формирование нового вектора так, что каждый элемент нового вектора определяется следующим образом: c[I]=(a[I]>b[I])?b[I]:a[I];
-- определить наименьший элемент вектора.
Описать параметризованный класс массив с двумя аргументами. Предусмотреть выполнение функций формирования массива, поиска заданного значения в массиве.
|
|
|

26.11.2009, 02:02
|
|
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме: 3020589
Репутация:
240
|
|
как реализовать данное в консольном приложении на С?
Вводим действие допустим 4*6+3.
Поскольку только недавно начал изучать С я думал так:
Объявить строковую переменную в которой занесется 4*6+3,
потом через функцию преобразования строковых переменных в числовые atoi()
занести в числовую переменную (при объявлении переменной числовой a=4*3+2 считает нормально)
и она посчитает, но так не получается. Выводит только первый символ.
То что я пробовал:
Код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[255];
int b;
printf("vvedite deistvie: \n");
gets(a);
b=atoi(a);
printf("Ravno: %d",b);
}
В голову пришла мысль: записывать все содержимое в txt файл искать сперва
символы * и слева и справа от найденного знака числа и перемножать их и.т.д.
далее перейти к поиску делений, суммирования. Но как это реализовать?
|
|
|

26.11.2009, 10:48
|
|
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме: 584699
Репутация:
69
|
|
M.W.N.N. Си не учил, но по аналогии с делфи просто перебираешь строку читаешь каждый символ до первого действия, записываешь в массив, после записываешь какое действие там было, ищешь дальше и тп до конца строки.
Также нужны функции или процедуры на сложение вычитание умн и дел, после того как прошол строку берешь первое действие в строке и стравниваешь его с "заготовкой" например если это сложение вызваешь функцию сложения с аргументами первыми элементами массива, ответ записываешь в индекс второго эллемента и продолжаешь..
Но тут не будет превильной последовательности выполнения действий типо сначало умножение а потом сложение, но это не сложно реализовать.
ЗЫ надеюсь помог
|
|
|

26.11.2009, 23:34
|
|
Новичок
Регистрация: 25.10.2009
Сообщений: 6
Провел на форуме: 14454
Репутация:
0
|
|
мне никто так и не помог..(
|
|
|

26.11.2009, 23:35
|
|
Новичок
Регистрация: 25.10.2009
Сообщений: 6
Провел на форуме: 14454
Репутация:
0
|
|
Создать модуль из функций и процедур для благоустройства:
1 одномерного массива за ростом.
2 одномерного массива за спадением.
3 Двумерного массива за ростом (по строкам).
4 Двумерного массиваза ростом (по столбикам)
5 двумерного масива за спадением ( по строкам).
6 двумерного масива за спадением (по столбикам).
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|