Просмотр полной версии : Студентам с лабораторными сюда
Страницы :
[
1]
2
3
4
5
6
7
8
9
10
11
12
В этой теме можно просить (если нужно) помощи в написании какой-либо лабораторной работы в институте-школе-где еще по программированию на С/С++/Delphi/Asm.
Просьбы вне этой темы будут удаляться либо объединяться с этой темой, а авторы наказываться, поскольку они (темы, да и авторы тоже) засоряют раздел.
Примечание. Соответственно, просьба не писать в темах в заголовке слово "задачка" и похожие, потому что это будет расцениваться как просьба написать лабу.
Выбирайте содержательные названия тем
Срочно нужна помощь
Нада нарисовать на ПАскале множество точек координат на 2(|y|+|x|)>=x^ + y^>=4
где >= - больше-равно, ^ - в квадрате
Помоите срочно
n3mo > Проверь:
uses crt,graph;
const
h=0.01;
scale=100;
var GrDr,GrM,CX,CY:integer;
a,b,x,y:real;
begin
GrDr:=9;
GrM:=2;
initgraph(GrDr,GrM,'');
CX:=round(GetMaxX/2);
CY:=round(GetMaxY/2);
moveto(CX-scale*2,CY);
linerel(scale*2,-scale*2);
linerel(scale*2,scale*2);
linerel(-scale*2,scale*2);
linerel(-scale*2,-scale*2);
circle(CX,CY,scale*2);
x:=-2;
y:=-2;
repeat
repeat
a:=2*(abs(x)+abs(y));
b:=sqr(x)+sqr(y);
if (a>=b) and (b>=4) then
putpixel(CX+round(x*scale),CY+round(y*scale),15);
x:=x+h;
until x>2;
y:=y+h;
until y>2;
readln;
closegraph;
end.
Сразу же залью множетсво программ на С++ (Самые первые лабароторки везде.)
Список:
Задание №1.
Табулирование функции.
Вычислить таблицу значений функции y=f(x) для значений аргумента X,
изменяющегося в интервале от Xнач до Xкон c шагом dX. Для вычисления
функции использовать подпрограмму, т.е. ввести функцию пользователя F(x).
вариант вид функции Xнач Xкон dX
00 y=2x/(1=sin(x/3)) 1,3 6,5 0,5
01 y=0,7(1/x+lnx) 14 34 2,5
02 y=2x(1+cos(x/2)) 0,9 5,5 0,5
03 y=2x(1+sin(x/3)) 1,7 6,3 0,5
04 y=2,5/(1/x+lnx) 12 25 2,5
05 y=2x/(2+cos(x/2)) 0,9 5,6 0,5
06 y=0,7(3x+1/lnx) 10 19 1,5
07 y=2x(1+cos(x/2)) 0,9 5,5 0,5
08 y=1/x+2cos(x) 12 25 2,5
09 y=2x(0,5*x+cosx) 1,5 6,5 0,5
10 y=0,9(3/x+lnx) 13 34 2,5
11 y=2x(3+sin(x/3)) 1,7 6,3 0,5
12 y=0,5/(1/x+lnx) 10 25 1,5
13 y=2x/(2+sin(x/2)) 0,7 5,6 0,5
14 y=0,7(3x+1/lnx) 10 19 1,5
15 y=5x(2+cos(x/2)) 0,5 5,5 0,5
Задание №2.
Обработка одномерного массива.
Ввести одномерный массив X, содержащий 9 вещественных чисел.
Выполнить обработку по варианту. Исходный массив и результаты
вывести на экран.
вариант содержание задания
00 Найти сумму отрицательных и произведение положительных
чисел массива.
01 Найти минимальное число массива.
02 Подсчитать количество чисел, равных 5.
03 Найти сумму элементов с чётными номерами.
04 Найти среднее арифметическое всех положительных чисел
массива.
05 Определить количество положительных и количество
отрицательных чисел массива.
06 Вывести на экран номера чисел, равных 0.
07 Преобразовать массив, расположив в нём числа
в обратной последовательности.
08 Преобразовать массив, заменив все отрицательные числа
на -1, а положительные на 1.
09 Вывести на экран числа, встречающиеся в массиве
более одного раза.
10 Преобразовать массив, расположив сначала все отрицательные,
затем все положительные числа (порядок следования чисел
внутри группы не изменять).
11 Заменить все отрицательные числа их модулем.
12 Найти минимальное число массива и его порядковый номер.
13 Заменить все отрицательные числа на нулевые.
14 Подсчитать количество чисел больших 10.
15 Найти среднее арифметическое всех отрицательных
чисел массива.
Задание №3.
Обработка двумерного массива.
Ввести массив чисел, содержащий N строк и M столбцов.
Значения N и M задать самим. Выполнить обработку по варианту.
Исходный массив и результаты вывести на экран, при этом двумерный
массив выводить в форме матрицы.
вариант содержание задания
00 Сформировать одномерный массив, состоящий из максимальных
чисел каждой строки.
01 Сформировать одномерный массив, состоящий из максимальных
чисел каждого столбца.
02 Преобразовать массив: элементы строки, в которой находится
максимальный элемент матрицы, заменить на нули.
03 Преобразовать массив: элементы того столбца, в котором
находится максимальный элемент матрицы, заменить на нули.
04 Каждый столбец матрицы упорядочить по убыванию.
05 Каждую строку матрицы упорядочить по убыванию.
06 Преобразовать массив: разделить элементы каждого столбца
заданной матрицы на последний элемент столбца.
07 Преобразовать массив: разделить элементы каждой строки
матрицы на последний элемент этой строки.
08 Определить количество нулевых чисел в каждой строке
матрицы.
09 Определить количество нулевых чисел в каждом столбце
матрицы.
10 Сформировать массив, состоящий из сумм положительных чисел
каждого столбца.
11 Сформировать массив, состоящий из сумм отрицательных чисел
каждой строки.
12 Найти среднее арифметическое положительных чисел каждой
строки.
13 Найти среднее арифметическое положительных членов каждого
столбца.
14 Преобразовать массив, умножив элементы каждой строки на
минимальный элемент этой строки.
15 Преобразовать массив, умножив элементы каждого столбца на
минимальный элемент этого столбца.
Скачать => ТУТ <= (http://weppc.jino-net.ru/Labworks.rar)
Куча лабораторных работ на ПАСКАЛЕ.
http://weppc.jino-net.ru/pasworks.rar
Внимение задчка по turbo pascal )
Воть надо сделать програму в каторый содержится к примеру 5 вапросов и 10 вариантов ответа. Теперь вопрос как сделать чтобы программа понила что ответ правильный....
В конце выведится количество правильныйх ответов на вопросы.
хМ как сделать это подксажите.
Надо хранить вопросы, ответы и номер правильного ответа в файле.
Joker-jar
23.06.2007, 17:12
как сделать чтобы программа понила что ответ правильный
Читай про условия :)
количество правильныйх ответов на вопросы
Счетчик... или массив ответов для последующего анализа
uses crt;
var a,b,c:integer;
begin
clrscr;
a:=0;
write('кушаеш? ');
write('1:da ');
write(' 2:HET ');
read(a);
clrscr;
write(' хакер?');
write(' 1:HET ');
write(' 2:da ');
read(a);
clrscr;
a:=a+a;
write(a);
end. Хм может быть так ? но как тогда сделать правильный или не правильный ответ ?
Joker-jar
23.06.2007, 17:27
Объяви структуру, которая содержит: текст вопроса, тексты вариантов ответа, номер правильного ответа. Создай файл объявленных структур. Отдельной программой наполни файл вопросами.
При ответе сверяй ответ с правильным ответом, если ок, инкрементируй счетчик.
Объяви структуру, которая содержит: текст вопроса, тексты вариантов ответа, номер правильного ответа. Создай файл объявленных структур. Отдельной программой наполни файл вопросами.
При ответе сверяй ответ с правильным ответом, если ок, инкрементируй счетчик.
Джокер мы еще не проходили работу с файлами...
Другой способ есть ?
Joker-jar
23.06.2007, 17:39
Тогда все в виде констант. Можно в виде массива
TQuestion = record
Text, Ans1, Ans2, Ans3, Ans4: string;
RightAns: 1..4;
end;
...
QArray: array[1..10] of TQuestion;
При запуске программы заполняй чем надо.
Тогда все в виде констант. Можно в виде массива
TQuestion = record
Text, Ans1, Ans2, Ans3, Ans4: string;
RightAns: 1..4;
end;
...
QArray: array[1..10] of TQuestion;
При запуске программы заполняй чем надо.
Ясно наверное я рано взялся за такое задние ((( Только сегодня массивы прошли (((
Joker-jar
23.06.2007, 17:41
Хотя, если у тебя вопросы типа ДА/НЕТ, то там проще
Хотя, если у тебя вопросы типа ДА/НЕТ, то там проще
Ну для начала... я хотел начать с ДА/НЕТ.
задание тут http://www.permcity.info/help.jpg если кто-нибудь сделает хотяб что нибудь из этой работы буду плюсовать каждый день тому человеку
Joker-jar
23.06.2007, 18:01
Fire3d, написал небольшой примерчик:
const
Tqs: array[1..5] of string = ('Vopros 1','Vopros 2','Vopros 3','Vopros 4','Vopros 5');
Tans: array[1..5] of boolean = (true,true,false,true,false);
var
s: string;
i,count: integer;
begin
writeln('Otvet: y or n');
for i := 1 to 5 do
begin
writeln(Tqs[i]);
readln(s);
if ((s = 'y')and(Tans[i]))or((s = 'n')and(not Tans[i])) then
count := count + 1;
end;
writeln('Right answers: ',count);
readln;
end.
Fire3d, написал небольшой примерчик:
const
Tqs: array[1..5] of string = ('Vopros 1','Vopros 2','Vopros 3','Vopros 4','Vopros 5');
Tans: array[1..5] of boolean = (true,true,false,true,false);
var
s: string;
i,count: integer;
begin
writeln('Otvet: y or n');
for i := 1 to 5 do
begin
writeln(Tqs[i]);
readln(s);
if ((s = 'y')and(Tans[i]))or((s = 'n')and(not Tans[i])) then
count := count + 1;
end;
writeln('Right answers: ',count);
readln;
end.
Спасибо когда приду дмоой сразу научну разбирать твой код. А тут вопросы можно задавать по коду ??? Просто некторый моменты мне не понятны....
Joker-jar
23.06.2007, 18:27
md5f1h, с нуля вряд ли кто-то будет делать. По отдельным вопросам обращайся, помогут.
2 Fire3d вот два теста может помогут писал очень давно но если че стукни в асю http://dobropozalovat.ifolder.ru/2463428
Возвращаюсь к опросам....
uses crt;
procedure variant(c,x,y:integer;s:string);
begin
textcolor(c); gotoxy(x,y); write(s);
end;
procedure vopros(c,x,y:integer;s:string);
begin
textcolor(c); gotoxy(x,y); write(s);
end;
var otvet,ball,summa:integer;
i:byte;
begin
clrscr;
ball:=0;
vopros(2,30,1,'B kakom weke no9BuJIc9 komp. ?');
variant(14,2,1,'1)‚ 21 weke.');
variant(14,2,2,'2)ў 19 weke. ');
variant(14,2,3,'>'); read(otvet);
clrscr;
vopros(2,30,1,'Antichat-samu ly4shi ?');
variant(14,2,1,'1)Da!');
variant(14,2,2,'2)Hea!');
variant(14,2,3,'>');readln(otvet);
if otvet=1 then ball:=ball+5;
summa:=ball;
if otvet=2 then ball:=ball-5;
writeLn('Vash ball=',summa);
readkey;
end.
Хм...если сделать рандом.... в моем случие при рандоме окажется vopros(2,30,1,'Antichat-samu ly4shi ?'); 1)Нет а 2)Да....
и бал в минус пойдет а ответ будет верный как выйти из ситуции....?
Имеет место быть следующее задание:
Вариант задания реализовать в виде функции, использующей для работы со строкой только указатели и операции вида *p++, p++ и т.д..
" Быстрая" сортировка (разделением) с использованием указателей
на правую и левую границы массива, текущих указателей на правый и левый
элемент и операции сравнения указателей.
------
я не знаю с чего начать.
объясните пожалуйста попроще что значит " Быстрая" сортировка (разделением),
а я уже на основе этого сам всё сделаю.
The_HuliGun
30.06.2007, 12:43
Ето алгоритм QuickSort, читай здесь (http://www.citforum.ru/programming/theory/sorting/sorting1.shtml#2_4)
никак не могу сделать этот квиксорт =\
вот чего я делаю:
1. задаю каким-то хреном середину массива (этот выбор наугад совсем мне не нравится, херня какая-то)
2. затем ищу слева число, больше или равное данному.
если не нашёл, то оно получается такое же как и в середине.
3. ищу слева меньшее данного. или опять же ему равное?
вот уже из-за этой херни я не вижу там логики.
сколько описаний в сети не прочёл - нигде не сказано точно.
примеров нормальных вообще нет.
сравнил два числа, (если они не равны друг другу), поменял местами.
затем снова ищу. и так наверно до тех пор пока они в любом случае не станут равны друг другу. (ну вот такие рассуждения хоть как-то упорядочивают мои мысли. сортируют их блин.)
потом в примере написано надо брать середину левой части. опять же наугад. какой идиот это писал?
и доводить всё до того, пока левая часть не станет равна одному элементу массива.
а что дальше?
и как всё это реализовать?
помогите, набросайте хоть какой-нить пример нормальный
да уж, куда этому идиоту хоару до нас...
:d
да не хоар идиот, а тот кто учебник писал. там таки и пишут - возьмём наугад.. чо за херня, как можно делать что-то наугад? в топку таких учителей
наугад, потому что выбор элемента абсолютно никак не влияет на конечную эффективность.
зы наугад читай как произвольным образом.
вот можно ли это дело изменить так чтобы функция работала только на указателях?
void quicksort(int *array, int start, int stop)
{
int left = start,
right = stop,
center = array[(start + stop) / 2];
while(left<right)
{
while(array[left]<center) left++;
while(array[right]>center) right--;
if(left<=right)
{
swap(&array[left], &array[right]);
left++;
right--;
}
}
if(right>start) quicksort(array, start, right);
if(left<stop) quicksort(array, left, stop);
}
array[i] -> *(array+i)
&array[i] -> array+i
задача: Функция находит в строке заданную подстроку и
возвращает динамический массив указателей на все вхождения этой подстроки.
так вот я не знаю, какой размер задать массиву? получается всякая чушь:
#include "stdio.h"
void strf(char s1[], char s2[], int pos=0)
{
int n = sizeof(s1)/sizeof(s1[0]);
int n2 = sizeof(s2)/sizeof(s2[0]);
char *mass[20];
for(int i=0; i<=n; i++)
{
if(s1[i] == s2[i])
{
int g=i;
for(int l=i; l<=n2; l++)
if(s1[l]!=s2[l])
{
int g=-1; break;
}
mass[i] = &s1[g];
}
}
}
void main()
{
char s1[] = "Terriuckble Fucker Stuckpidly";
char s2[] = "uck";
strf(s1,s2);
}
вот переделал сколько смог, но всё равно не работает собака серая!
я с массивом ms уже замучался. надо чтобы он был массивом указателей char *ms
и в него сохранялись указатели на первые вхождения подстроки в строку, т.е.
адреса на три буквы U, за которыми следуют буквы C и K.
В учебнике написано что для массивов указателей вообще не выделяется память, и как тогда быть?
Как наполнить массив указателями?
Постучитесь кто-нить в аську 268238560, объясните, иначе я на экзамен не попаду, очень нужен дельный совет!
По сути, могу даже яндекс деньгами рассчитаться за помощь, в разумных пределах конечно.
#include "stdio.h"
char * strf(char *s1, char *s2)
{
for (int m1=0;s1[m1]!='\0';m1++);
for (int m2=0;s2[m2]!='\0';m2++);
int ms[5];
int counter=0;
int ps=0;
for(int i=0;i<m1;i++)
{
if(s1[i] == s2[0])
{
int start = i;
for(int j=0;j<m2;j++)
{
if(s1[j+i] != s2[j])
ps = 1;
}
if(ps == 0)
ms[counter] = start;
}
}
return (int)ms[5];
}
void main()
{
char s1[] = "Terriuckble Fucker Stuckpidly";
char s2[] = "uck";
strf(&s1[0],&s2[0]);
for(int l=0;l<5;l++)
printf("%d \n", ms[l]);
}
и ещё: где взять alloc.h? у меня в МС визуал си++ 6.0 его нет
Юзай new/delete вместо (m/c)alloc/free
Или вот: http://www.codenet.ru/progr/visualc/esmall/add.txt
Юзай new/delete вместо (m/c)alloc/free
плахой совет, ибо exception safe код при явном вызове delete получить трудно, потому правильный совет звучит так-
используйте умные указатели и обёртки над указателями вместо освобождения ресурсов на прямую.
подскажите вот что:
entries = (char**)realloc(entries, arr_size*sizeof(char*));
такой строкой я заново переопределяю массив указателей entries или к нему как-то добавляется свободное место?
мне нужно в цикле добавлять в динамический массив указатели и каждый раз увеличивать его размер.
а дальше вот функция, которую я родил, если не лень, попробуйте скомпилить и скажите почему она ничего не выводит:
#include "stdio.h" // ввод/вывод
#include "stdlib.h" // работа с памятью
char ** fndr(char *s1, char *s2, int *n_entrs)
{
char ** entries = NULL; // массив с указателями на вхождения
int arr_size = 2; // изначально его размер 0
int counter = 0; // счётчик записей
int destroy = 0; // если все буквы совпали то она равна нулю
for(int s1_len=0;s1[s1_len] != '\0'; s1_len++); // s1_len - длина первой строки
for(int s2_len=0;s2[s2_len] != '\0'; s2_len++); // s2_len - длина второй строки
for (int i=0; i<s1_len; i++)
{
if(s1[i] == s2[0]) // если совпал первый символ
{
for(int g=0; g<s2_len; g++)
{
if(s1[i+g] != s2[g])
destroy = 1;
}
if(!destroy)
{
if(counter >= arr_size)
{
arr_size *= 2;
entries = (char**)realloc(entries, arr_size*sizeof(char*)); // добавление памяти
}
entries[counter] = &s1[i]; // добавление указателя в массив
counter++; // счотчик инкрементируем
}
}
} // конец перебора первой строки
*n_entrs = counter;
return entries;
}
void main()
{
char s1[] = "my house is you house in you house is wife";
char s2[] = "house";
char ** entries; // массив с указателями на вхождения
int n_entrs = 0; // кол-во вхождений
entries = fndr(s1, s2, &n_entrs);
for (int n=0; n<n_entrs; n++)
printf("%s \n", entries[n]);
free(entries);
}
Тут некоторые сортировки на С++, реализация. Если кому надо.
http://www3.msiu.ru/~roganov/2sem/sort.cpp
дайте инфы по оверлеям с нуля плз. юзал поиск, не нашел
ЗЫ не нашел другого раздела, чтобы спросить=\
Piflit, я тебе уже писал, тебе нужно ознакомиться с документациями по формату PE, но уровень на котором ты находишься сейчас явно не предполагает ознакомления с этой темой. Лучше разберись с основнами для начала. Про указатели, ссылки почитай и т.п. И еще, не путай, если хочешь учиться покупай книгу именно по С, а не талмуд по С++ , ООП на данный момент тебе явно не нужно.
Оверлей – это то, что находится между физическим концом последней секции и концом файла. Конечно, оверлей может содержать и полезную для файла информацию.
wasm.ru -> статьи и форум, лучше чем там не ответят пожалуй нигде.
Piflit, я тебе уже писал, тебе нужно ознакомиться с документациями по формату PE, но уровень на котором ты находишься сейчас явно не предполагает ознакмоления с этой темой. Лучше разберись с основнами для начала. Про указатели, ссылки почитай и т.п. И еще, не путай, если хочешь учиться покупай книгу именно по С, а не талмуд по С++ , ООП на данный момент тебе явно не нужно.
Спасибо за ответ. Я знаю, что ты много занешь, просто хочется услышать еще чьи-то мнения.
Задание А:
Вычислить значение функции. Осушествить вывод значений вводимых исходных данных и результат вычисления значений функции, сопровождая вывод наименованиями переменных.
Функция: f= lg(x+1) и sin^2SQR|ax| (тут система уравнений)
Условие: x>1 ; x <=1
Исходные даннные: a=20.3
Задание Б:
Диапазон и шаг изменения аргумента: x [0.5;2] , дельтаX=0.1
Модифицыровать программу таким образом, чтобы вычислялось многократно значение функции при изменении агрумента в указаном диапазоне и с заданым шагом.
Организовать вывод значения аргумента, и вычисленного значения функции в виде таблицы.
Таблица функции Y(X):
X Y
.... ....
.... ....
P.S помогите:)
а на чём, т.е. каком языке это делать надо?
а на чём, т.е. каком языке это делать надо?
извени забыл на С++
А помогите плиз решить такую задачу
Выполнить задания, выделяя цифры числа, хранящегося в переменной стан-дартного числового типа.
1. Определить, равен ли квадрат заданного натурального трехзначного числа, сумме кубов цифр этого числа.
2. Определить, есть ли среди первых трех цифр дробной части заданного по-ложительного вещественного числа, цифра 0.
lsass.exe
10.10.2007, 17:03
А помогите плиз решить такую задачу
Выполнить задания, выделяя цифры числа, хранящегося в переменной стан-дартного числового типа.
1. Определить, равен ли квадрат заданного натурального трехзначного числа, сумме кубов цифр этого числа.
2. Определить, есть ли среди первых трех цифр дробной части заданного по-ложительного вещественного числа, цифра 0.
на каком языке реализовывать?
!пРОФЕССИОНАЛЫ ДОРОГИЕ.....Намекните или поскажите как написать под Dos перехватчик системных вызовов!.....протоколировани е действий пользовотеля!()копир, перемещ, создание, удаление, печать!.....или Скажите где почитать! заранее признателен!либо на асм либо на C ))
http://www.wasm.ru/article.php?article=1021007
P.S.
Во какие людям лабораторки дают!
Ky3bMu4,спасибо...большое .... но это же Win......а мне под дос писать надобно......если не сложно киньте ссылочку......перехвата вызовов в MS-dos
Или нет принципиальной разницы?
Принципиальная разница есть, и она огромна.
wasm.ru -> поиск
wasm.ru -> форум
MegaDeth
11.10.2007, 23:04
мне не по лабе но интересуют меня алгоритмы составления цепочек слов из набум набраных
(надо расставить их чтобы посл. буква была первой в следующем)
желательно пример на Делфи, или на любом другом языке либо описание хотябы. сам пробовал составлять но заморочка с оптимальным выбором слов (длинны цепиочки)
Ну блин... тут можно написать охрененно дофига алгоритмов и все будут правильными.
Лично я бы писал так - создал массив объектов заполнил бы одно поле значениями длинны второе первыми буквами третье - последними. И затем перебирал бы их, создавая при этом древовидную структуру - и потом та линия которая длиннее - ту бы и использовал. Просто алгоритмов перебора, и составления деревьев, да еще и выбора максимальной цепочки - огромное множество. Все зависит от количества слов. Если не много или время не критично - можно просто попарно сравнивать. Но это бяка.
MegaDeth
12.10.2007, 14:49
~Lexx~, понятно, тоже мысль! я вот как хотел: берем последнюю букву из первого слова, ищем слово нач. на эту букву и присоединяем, потом посл.. букву, ищем...
но так будет зависеть от порядка расположения длина цепочки)
сорь, что лезу с глупыми вопросами, но сам решить вопрос не очень могу.
Надо составить прогу, которая бы считала сумму ряда чисел с максимальной точностью:
беск
E (сумма) {((-1)^[Vi]) * x^2i}/ [(i+2)* (i+3)
i=0
[Vi ] - целая часть числа-арифметического корня числа i
числитель (-1)в степени [Vi] * x в степени 2i
знаменатель (i+2)*(i+3)
х - задаётся юзером
i = переменная цикла
оч нужно решение задачи на C
D=P=CH= MOD=
17.10.2007, 15:58
Огромная прозьба помоч!
Сейчас VS не пашет у меня, написать не могу..
Задание 1:
Вычислить таблицу значений функции y=F(x) для значений аргумента x, изменяющегося в интервале от Xнач до Xкон c шагом dx. Для вычисления функции использовать собственную функцию, т.е. ввести функцию пользователя F(x).
Функция: y=0,9(3/x+a*lnx) Xнач: 13 Xкон: 34 dX: 2,5
Причем надо сделать все не в одном массиве, а такого вида:
#библиотеки
(задается функция)
{
основная часть, где задаются Хмин, макс, dX...
while
(xmin<хмакс)
}
{выполняется функция y=0,9*(3/x+a*log(x))}
+ должно выводиться ввиде таблицы.
То, что выложено на первой странице НЕ пашет!
+++++++++++++++++++++++++++++++
И есть второе задание, довольно простое.
Нужно написать прогу, в которой будут проверяться введенная дата
на правильность ввода.
вида: ДД.ММ.ГГГГ
Короче там иф, зен, элзэ ...
if
от 01 до 31
от 01 до 12
а год даже хз как лучше сделать...
Заранее спасибо!
+ 15 и огромный респект!
Нужна помощь...
Нужно написать программу, которая будет выводить сколько всего точек с целыми координатами на окружности с центром в начале координат радиусом R.
У меня нет мыслей :( Язык паскаль, можно си..........
D=P=CH= MOD= , сделал под твою функцию, только ты не сказал что за переменная a, сам подправишь, если что.
#include <math.h>
#include <iostream>
#define a 3
using namespace std;
double F(double x)
{
return 0,9*(3/x+a*log(x));
}
int main(void)
{
const double dx = 2.5, xmax = 34;
double xmin = 13;
while (xmin < xmax)
{
cout<<"F("<<xmin<<")= "<<F(xmin)<<endl;
xmin+=dx;
}
//system("pause");
return 0;
}
Во 2 задаче нужно выбирать с каких годов начинать счисление и какими заканчивать.
#include <iostream>
using namespace std;
int main(void)
{
char data[12], *k, *array[2];
short d, m, y;
cout<<"Enter: ";
cin >> data;
k = strtok(data, ".");
for(int i = 0; k; k = strtok(0, "."), i++)
array[i] = k;
d = atoi(array[0]);
m = atoi(array[1]);
y = atoi(array[2]);
if(d < 1 || d > 31)
cout<<"Invalid Day"<<endl;
else if(m < 1 || m > 12)
cout<<"Invalid Month"<<endl;
else if(y < 1000 || y > 2050)
cout<<"Invalid year"<<endl;
else
cout<<"Day: "<<d<<endl<<"Month: "<<m<<endl<<"Year: "<<y<<endl;
//system("pause");
return 0;
}
Немного извращено, надо будет - оптимизируешь сам.
D=P=CH= MOD=
19.10.2007, 23:00
Ni0x огромное спасибо!!!
ps а переменная "а" должна задаваться, ну это я уже сам.
Нужна помощь...
Нужно написать программу, которая будет выводить сколько всего точек с целыми координатами на окружности с центром в начале координат радиусом R.
У меня нет мыслей :( Язык паскаль, можно си..........
Ну здесь тоже несколько вариантов решения - можно просто проходить все точки в квадрате -R---R и проверять подходят ли они под уравнение окружности R^2=x^2+y^2; а можно использовать вышку и искать через приближения.
в первом случае - два фора. )))
Хм.........на счёт второго случая думал, потом перестал, ибо с вышкой не дружу(
А вот первый возможно сделать.....но у меня сейчас своего компа нет(
Прямоугольная плоскость задана координатами (x1,y1) - левая верх. точка и (x2,y2) - правая нижняя.
По границе ползет "удав" со скоростью V. Внутри области движется точка с скорость v1. Она начинает свое движение вниз от границы области на заданном расстоянии S от левого верхнего угла под углом A к нижней линии области. Точка движется, отражаясь от стенок, до тех пор пока не столкнется с "удавом". Обьекты начинают движение одновременно. При стократном столкновении программа завершает работу, оповещая пользователя.
Реализовать: Pascal
Хм.........на счёт второго случая думал, потом перестал, ибо с вышкой не дружу(
А вот первый возможно сделать.....но у меня сейчас своего компа нет(
лень грузить студию - получи на пасе
Begin
readln(R);
x:=0;
N:=0;
(*Суммируем в первой четверти - в конце домножаем на 4 :-) *)
while x<R do begin
y:=0;
while y<=R do begin
if (sqr(R) = (sqr(x) + sqr(y))) then N:=N+1;
y:=y+1;
end;
x:=x+1;
end;
N:=N*4;
writeln(N);
end.
конечно это банальная отиска - можно еще дописать ограничения области перебора- чтобы не снуляперебирать, а начиная с некоторой точки, отстоящей от нуля. НО будет пахать и так.
.:baclan:.
25.10.2007, 15:02
нужна лаба на С: Сортировка с помощью включения используя метод деления пополам,
Пирамидальная сортировка. по возрастанию.
Необходимо написать программу, которая должна:
1. Создавать не менее 3х массивов так, чтобы их длины соотносились как N, N+a, N+2a. (Например, 1000, 3000 и 5000).
Чем больше массивов вы будете рассматривать – тем лучше.
2. Каждый из массивов необходимо заполнить произвольными (случайными) значениями.
При заполнении массивов необходимо придерживаться одной тактики, поскольку способ заполнение может иметь определенное значение.
Например, можно заполнить массив из 1000 элементов случайными числами от 1 до 5 или же от 1 до 10000 – скорее всего производительность алгоритмов сортировки будет отличаться.
3. Сохранить исходные массивы в файле или файлах (в текстовом виде).
4. Для каждого из исходных массивов, а также отсортированного в прямом порядке и отсортированного в обратном порядке, каждым из предложенных методов выполнить сортировку. Необходимо вычислить число сравнений, число перемещений и время работы каждого алгоритма, в каждом случае.
5. Результаты выполнения п.4. должны выводиться на экран или сохраняться в файле в таблице (таблицах):
Число сравнений / число перемещений / время
N Способ №1 Способ №2
Исходный массив Отсортированный массив Обратно отсортированный Исходный массив Отсортированный массив Обратно отсортированный
N
N+a
N+2a
N+3a
6. Результаты сортировки исходных массивов сохранить в файле (файлах), в текстовом виде.
7. Необходимо представить результаты в виде графика (графиков)
8. Необходимо быть готовым обосновать полученные результаты
9. Любые эксперименты, усовершенствования и творческий подход будут приветствоваться!
10. Необходимо ориентироваться в исходном коде программы и быть готовым ответить на дополнительные вопросы.
11. Необходимо подготовить и представить отчет о работе. В отчете должны быть представлены краткие описания используемых алгоритмов, должно быть приведено краткое описание работы программы и анализ полученных результатов.
очсрочно!те до 23:00 26.10.2007г
сроки неожиданно продлились до 3.11. помогите плз
Значить такой код на кнопочке.
Private Sub Cmd1_Click()
Dim i, j As Integer
Dim N, M As Integer
Dim Coun(), Film(), Mucs() As String
N = InputBox("Ââåäèòå êîëè÷åñòâî ñòðàí")
M = InputBox("?")
ReDim Coun(1 To N, 1 To M), Film(1 To N, 1 To M), Mucs(1 To N, 1 To M)
For i = 0 To N - 1
For j = 0 To M * 2
If j = 0 Then
Coun(i, j) = InputBox("Coun" & i)
List1(i).List(j) = Coun(i, j)
ElseIf (i / 2) - Fix(i / 2) = 0 Then
Film(i, j) = InputBox("Film" & i)
List2(i).List(j) = Film(i, j)
Else
Mucs(i, j) = InputBox("Mucs" & i)
List3(i).List(j) = Mucs(i, j)
End If
Next j
Next i
End Sub
и выдает ошибку на List1 в чем проблема?
Разграничегие доступа
Всех приветствую. Вопрос вот в чем: задали в универе лабу: написать программу под Win для добавления учетных записей в системе и назначения им (группам) прав. Как такое реализовывется? Где об этом почитать? Если можно, пример..
p.s. по возможности написать руткит для работы программы не с админскими правами.
Многоразрядные числа представлены в виде одномерного массива. Необходимо:
- реализовать операцию возведения многозначного числа в степень;
- реализовать операцию умножения многозначного числа на многозначное число;
Неоходимо реализовать на Pascal'e.
Заранее спасибо)
http://www.kursovik.com/programming/109011.html
Расчет количества дней между датами
Программа расчитывает количество дней между двумя датами, заданных тремя чслами - год, месяц, день.
Расчет ведется по всем правилам, с учетом високосных годов.
нужен сабж на паскале (Pascal)
Dumkopff
06.11.2007, 00:53
helat
program data;
uses crt;
label escape,asd,dsa,contin;
var
m1:array[1..12] of integer;
m2:array[1..12] of integer;
a:array[1..3] of longint;
b:array[1..3] of longint;
err:boolean;
cd:char;
i:byte;
razn,d1,d2,mo1,mo2,y1,y2:longint;
begin
clrscr;
writeln('Input first date');
writeln('Day');
read(a[1]);
writeln('Month');
read(a[2]);
writeln('Year');
read(a[3]);
writeln('Input second date');
writeln('Day');
read(b[1]);
writeln('Month');
read(b[2]);
writeln('Year');
read(b[3]);
for i:=1 to 12 do
begin
if (i=1) or (i=3) or (i=5) or (i=7) or (i=8) or (i=10) or (i=12) then
begin
m1[i]:=31;
m2[i]:=31;
end
else
begin
m1[i]:=30;
m2[i]:=30;
end;
end;
if a[3]/4=int(a[3]/4) then m1[2]:=29 else m1[2]:=28;
if b[3]/4=int(b[3]/4) then m2[2]:=29 else m2[2]:=28;
clrscr;
if (a[1]<=0) or (b[1]<=0) or (a[2]<=0) or (b[2]<=0) or (a[3]<=0) or (b[3]<=0) then err:=true;
if (a[2]>12) or (b[2]>12) then err:=true;
if a[1]>m1[a[2]] then err:=true;
if b[1]>m2[b[2]] then err:=true;
if err=true then
begin
writeln('Error! Please check your data.');
goto escape;
end;
if a[3]>b[3] then
dsa:
begin
d1:=a[1];
mo1:=a[2];
y1:=a[3];
d2:=b[1];
mo2:=b[2];
y2:=b[3];
goto contin;
end;
if b[3]>a[3] then
asd:
begin
d1:=b[1];
d2:=a[1];
mo1:=b[2];
mo2:=a[2];
y1:=b[3];
y2:=a[3];
goto contin;
end;
if b[3]=a[3] then
begin
if a[2]>b[2] then goto dsa;
if b[2]>a[2] then goto asd;
if b[2]=a[2] then
begin
if a[1]>b[1] then goto dsa;
if a[1]<b[1] then goto asd;
end;
end;
contin:
razn:=0;
repeat
if y2/4=int(y2/4) then m1[2]:=29 else m1[2]:=28;
razn:=razn+1;
if (d2<=m1[mo2]) and (mo2<=12) then d2:=d2+1;
if (d2>m1[mo2]) and (mo2<12) then
begin
mo2:=mo2+1;
d2:=1;
end;
if (d2>m1[mo2]) and (mo2=12) then
begin
y2:=y2+1;
d2:=1;
mo2:=1;
end;
until (d1=d2) and (mo1=mo2) and (y1=y2);
escape:
writeln('Difference');
writeln(razn);
writeln('days');
cd:=readkey;
end.
не самая удачная реализация, но считает прально. =\
прога то считает.но очень мудрёная.
у кого что ещё есть?
мб через юлианский день высчитывать
когда то сам искал, нужно было помочь человеку с задачкой, вот через Юлианский день
Program Jules;
{
All of the explanation needed is the source.
"May this routine make all your code run faster"
- Programmer's Prayer
}
Type
Str3 = string[3]; {for a month name}
str9 = string[9];
Var
Date1,Date2 : string[12]; {the dates to compare}
Number_of_days : integer; {Number of days between the two dates}
Function Number_of_Month (Month : str3) : integer;
{Returns the sequential number of the month; Jan=1 & Dec = 12}
Var
Temp : integer;
Dates : string[36];
Begin
{Notice how I scan the string. Less code than a case!}
Dates := 'JanFebMarAprMayJunJulAugSepOctNovDec';
Number_of_Month := round((pos(Month,Dates)-1)/3) +1;
End;
function Since_Beginning (month,day,year : integer) : integer;
var
DayCount : integer; {Holds the number of days}
Temp : integer; {Just a temporary holding integer}
Num_Leaps : integer; {Holds the number of leap years}
Begin
Num_Leaps := 0;
DayCount := 0;
Writeln;
Writeln('Scanning ',month,'/',day,'/',year,' ...');
for Temp := 1 to year do {Gets the number of leap years}
If (temp mod 4) = 0 then Num_Leaps := Num_Leaps + 1;
Writeln('Found ',num_leaps,' leap years occuring');
DayCount := (year * 365) + Num_Leaps; {calcs year & leap year}
Writeln('Making ',abs(daycount),' days in ',year,' YEARS');
DayCount := DayCount + Day; {adds in days}
Writeln('Plus ',day,' days makes ',abs(daycount),
' days in YEAR + DAY');
For Temp := 1 to Month-1 do
{
Couldn't help but put a large case here.
The number is the number of days in that month. Feb is 28 because
the leap year counter takes the leap year into effect
}
Begin
Case Temp of
1 : DayCount := DayCount + 31; {jan}
2 : DayCount := DayCount + 28; {feb}
3 : DayCount := DayCount + 31; {mar}
4 : DayCount := DayCount + 30; {apr}
5 : DayCount := DayCount + 31; {may}
6 : DayCount := DayCount + 30; {jun}
7 : DayCount := DayCount + 31; {jul}
8 : DayCount := DayCount + 31; {aug}
9 : DayCount := DayCount + 30; {sep}
10 : DayCount := DayCount + 31; {oct}
11 : DayCount := DayCount + 30; {nov}
12 : DayCount := DayCount + 31; {dec}
end; {case of temp}
end; {for loop}
Since_Beginning := DayCount;
Writeln('Plus ',month,' months makes ',abs(daycount),
' days since 00/00/00');
end; {function SINCE_BEGINNING}
Function Days_Elapsed (date1,date2 : str9) : integer;
Var
Month1,Day1,Year1,
Month2,Day2,Year2 : integer; {sets of dates}
Temp1,Temp2 : integer; {for the VAL function}
Begin
Month1 := Number_of_Month(Copy(date1,4,3)); {gets the month number}
Month2 := Number_of_Month(Copy(date2,4,3)); {gets the month number}
Val(copy(date1,1,2),Day1,Temp2); {get everything into numerics}
Val(copy(date2,1,2),Day2,Temp2); { " " " " }
Val(copy(date1,8,2),year1,temp2); { " " " " }
Val(copy(date2,8,2),year2,temp2); { " " " " }
Val(copy(date1,8,2),year1,temp2); { " " " " }
Val(copy(date2,8,2),year2,temp2); { " " " " }
Days_Elapsed := Since_Beginning(month2,day2,year2) -
Since_Beginning(month1,day1,year1);
{The difference of the two numbers}
end;
Begin {Main}
Date1 := '27 Jan 64'; {My birthday}
Date2 := '20 Nov 85'; {When I last edited this program}
ClrScr; {If you want originality, call an author...}
Writeln('JULES - Finds the number of days between two dates ',
'using a JULIAN manner.');
Writeln('Author - David Strickler');
Writeln('Address - FIDO 101/45 [Midnight DEC]');
Writeln;
Writeln('This program shows a pretty good way to find the number');
Writeln('of days between two dates. It is reasonably fast and');
Writeln('has a mininum of source code to it. Please use it as');
Writeln('you wish. The only right I claim, is that is it officialy');
Writeln('in the Public Domain.');
Writeln;
{Call the main function. Very neat & clean. Two in, one out}
Number_of_Days := Days_Elapsed(date1,date2);
Writeln('Number of days between ',date1,' and ',date2,' is ',
Number_of_days);
End.
http://pascal.sources.ru/datetime/jules.htm
Плюс ко всему прочему большой набор исходников для работы с Date на Pascal
http://pascal.sources.ru/datetime/index.htm
Заставка оператор создайте заставку :
******************
* Программа *
* вычесления чисел *
* Автор: *
* *
* *
******************
На Паскале создайте пожалуйсто, если такое ваще реально создать. Буду очень благодарен
И еще : Вывести сумму числа введенного с клавиатуры с числом 10
))))
тоесть заставку? всмысле под винду - и там типа в спящем режиме выводит вреальном времени? Или просто перед выполнением программы вывсти на экран)))
ну наверное перед выполнением программы вывести на экран и это две разные программы
ZirroCool
06.11.2007, 16:01
И еще : Вывести сумму числа введенного с клавиатуры с числом 10
var
s:string;
a:integer;
begin
writeln('Vvedi 4islo');
readln(s);
a:=strtoint(s)+10;
writeln('rezultat '+inttostr(a)+' ...');
Writeln('Press Enter to continue');
Readln;
end.
И вот (http://delphi-faq.zoxt.net/1596.htm) по поводу заставки!
P.S.Не бойся гугля он не кусается!
Спасибо, а вставить этот код в Делпхи 7 нормально будет ?
ZirroCool
06.11.2007, 16:31
Да не то что нормально,а в самый раз!))
Red_Red1
09.11.2007, 00:25
2 helat
http://www.kursovik.com/programming/109011.html
Расчет количества дней между датами
Программа расчитывает количество дней между двумя датами, заданных тремя чслами - год, месяц, день.
Расчет ведется по всем правилам, с учетом високосных годов.
нужен сабж на паскале (Pascal)
Вот тоже решил написать свой вариан. Когда тестил, использовал ссылку которую ты привел. Также проверил програмку от G1yuK (от Dumkopff запустить неудалось). Вывод такой - програмка приведенная по ссылке и предложеная G1yuK ошибается на единицу если второй (большей) датой ставим високосный год. Тестил на таких примерах:
1984.01.01 Первая дата
1984.02.29 Вторая дата
Результат = 59
Если ставим
1984.01.01 Первая дата
1984.03.01 Вторая дата
Результат = 59 (Тоже !!!!)
Хотя 1984 год есть високосный и разница между 1 января и 1 марта - 60 дней.
Если взять даты:
1984.01.01 Первая дата
1984.12.31 Вторая дата
Результат = 364 (неверно, должно быть 365!!!)
Если ставим
1984.01.01 Первая дата
1985.01.01 Вторая дата
Результат = 366 (Правильно, НО КУДА ДЕЛСЯ 365 день?)
Еще ты жаловался на "мудреный" код от Dumkopff.
Привожу свою реализацию. Алгоритм и код очень простой, и у меня нету этой ошибки в високосным годом. Прошу потестить может и я где ошибся :)
Да и еще программа простая но есть минусы: не проверяет правильность введеной даты, не проверяет соответсвие дней месяцу т.е. можно написать 2000.02.35. Но при корректном вводе считает правильно (я надеюсь).
uses crt;
type
mymas=array[1..12] of integer;
const d1:mymas=(0,31,59,90,120,151,181,212,243,273,304,3 34); {Dlya NE vicokosnogo}
d2:mymas=(0,31,60,91,121,152,182,213,244,274,305,3 35); {Dlya vicokosnogo}
var data:string[10];
d:mymas;
god,mes,den,kol_v:integer;
kol_dney:array[1..3] of longint;
er,i:integer;{for error and cikl :)}
begin
clrscr;
for i:=1 to 2 do
begin
readln(data); {GGGG.MM.DD}
Val(Copy(data,1,4),god,er);
Val(Copy(data,6,2),mes,er);
Val(Copy(data,9,2),den,er);
{Proverka na "visokosnost"}
if ((god mod 4)=0) and (((god mod 100)<>0)or((god mod 400)=0)) then d:= d2 {Dlya vicokosnogo}
else d:= d1;{Dlya NE vicokosnogo}
kol_v:=((god-1) div 4)-((god-1) div 100)+((god-1) div 400);
kol_dney[i]:=god*365+kol_v+d[mes]+den;
end;
kol_dney[3]:=kol_dney[2]-kol_dney[1];
writeln(kol_dney[3],' Days');
write('HAI+IMUTE ''Enter'' DLYA BUXODA');
readln;
end.
Помогите пжалста)
Строка символов представляет собой арифметическое выражение, состоящее из чисел, знаков арифметических операций(*, / , + , - ) и открывающихся и закрывающихся круглых скобок.Проверить его корректность
Реализация Pascal.
При этом соблюдается следующее:
1) Первым и последним символами должны быть числа или закрывающаяся скобка.
2) Перед и после арифметической операции должны быть числа или откр. скобка
3) Если скобка открывается, то она обязательно должна закрыться, кол-во скобок не ограничено.
4) Первой арифм. операцией должна выполнятся в скобках, затем умножение, деление, сумма, разность.
Слегка нудновато...но все же ;)
Люди помогите плис с 3мя задачами на паскале
1)
дан 3х мерный массив Q(mxnxq) длинного типа. Умножить каждую строку страницы на столбец U(q) целого типа и посчитать в полученной матрице кол-во положительных, отрицательных и нулевыхэлементов
2)
в символьной строке заменить все гласные буквы на "_" , рассчитать кол-во цифр, русских, английских букв, а также остальных символов.
3)
список строк содержит наименования учебных дисциплин. Отфильтровать все недопустимые символыи сформировать список, содержащий только предметы, наименования которых начинаютса с согласной буквы. В сформированном списке рассчитать число слов и букв в каждом наименовании
MegaBits
12.11.2007, 21:47
Задание.
1. Определить структурный тип, содержащий следующие поля:
- символьный массив, используемый для хранения строки, например, с именем студента,
- указатель на тип char – для организации динамического массива, хранящего строку, например, с фамилией студента.
Остальные поля выбрать по варианту, приведенному в таблице 2.
Использовать одну из переменных для хранения некоторого идентификатора (номера); указатель на несимвольный тип – для организации динамического массива целых или плавающих чисел; другую переменную – для хранения размера этого массива;
Дополнить структурный тип любыми полями по своему выбору.
1. Переменная типа double;
2. Указатель на тип double;
3. Переменная символьного типа.
2. Определить функции:
• инициализации структуры;
• заполнения массива чисел;
• вывода на экран массива чисел;
• ввода информации в строки имени и фамилии и другие поля;
• вывода на экран всех полей структуры, кроме массива чисел;
• функцию освобождения динамической памяти.
У половины функций, по выбору студента, одним из аргументов должен быть указатель на структуру, у второй половины – ссылка на структуру.
3. Определить функцию main(), в которой создать:
• объект ранее определенного структурного типа
• указатель на этот структурный тип.
С помощью указателя создать динамический массив объектов структурного типа из 3-х – 4-х элементов.
Для объекта последовательно вызывать функции инициализации, заполнения массива чисел, ввода данных в остальные поля, показа массива, показа полей.
Для каждого элемента массива структур выполнить в цикле (for) функции инициализации, заполнения массива и ввода данных.
Вывести на экран содержимое полей каждого элемента массива структур в цикле (for) с помощью соответствующих функций.
В конце функции main() вызвать функцию освобождения памяти для объекта структурного типа и в цикле для каждого элемента массива объектов.
Удалить динамический массив.
сделайте пожалуйста на с++ задание в консоли
Для тестирования предусмотреть возможность задавать элементы массива различным образом: при описании с инициализацией, присвоением значений (в том числе случайных), или вводом необходимых значений.
1. Найти сумму элементов массива, являющихся степенями числа2.
2. Найти наименьшее среди чисел первой последовательности, не входящих во вторую.
3. Получить массив С(k), упорядоченный по возрастанию, путем слияния массивов A(n) и B(m), упорядоченных перед этим по возрастанию, где k = n + m.
Вот мне интересно. Вы тут все считаете себя хорошими хакерами, а элементарных задач, с которыми даже у обычного незаинтересованного студента затруднений не возникает, решить не можете. Быть хакером по определению "хакера" подразумевает хорошие навыки в программировании, тем более программировании таких элементарных алгоритмов.
А кто сказал, что они считают себя ниибаццо хакерами? )
Было накидано за 15 минут... Тока 1 и 2 задания.
#include <tchar.h>
#include <iostream>
using namespace std;
bool isst2(int x,int s);
int _tmain(int argc, _TCHAR* argv[])
{
register int *ms1,*ms2,size,x,summ=0,y; //трахаться будем по полной
bool tmp; //херня
cout<<"Enter size of massives:"; //вводим размеры. Я тут у них одинаковый размер
cin>>size;
ms1 = new int[size];
ms2 = new int[size];
/*Вводим массивы*/
for(x=0;x<=size;x++){
cout<<"Enter "<<x<<" element of first massive:";
cin>>ms1[x];
cout<<"Enter "<<x<<" element of second massive:";
cin>>ms2[x];
}
/*1. Найти сумму элементов массива, являющихся степенями числа 2. */
for(x=0;x<=size;x++){
if(isst2(ms1[x],1)) summ+=ms1[x];
}
cout<<"Answer to 1: "<<summ<<endl; //незнал как по-англицки
/*2. Найти наименьшее среди чисел первой последовательности, не входящих во вторую.*/
summ=ms1[0]; //текущее мах число
for(x=0;x<=size;x++){
tmp=1;
for(y=0;y<=size;y++){
if (ms2[y]==ms1[x]) tmp=0; //входит :(
}
if(tmp && ms1[x]<summ) summ = ms1[x];
}
cout<<"Answer to 2"<<summ<<endl;
return 0;
}
/*Является или число степенью числа 2*/
bool isst2(int x,int s)
{
s*=2;
if(s==x) return 1;
else if(s>x) return 0;
else isst2(x,s);
}
Помогите написать ! Задание :
Зарисовать весь екран 12-угольниками , 6-угольниками , 4-угольниками - ОДНОВРЕМЕННО ! Пробовал по формулам поворота сначало нарисовать 12-угольник , потом со всех сторон 4-угольники и смещять по екрану относительно точки - не дорисовует последнюю сторону 12-угольника!!!
Подскажыте кто знает ...
Писать на Turbo-pascal......
N-уголники должны быть правильные?
Люди помогите плис с 3мя задачами на паскале
1)
дан 3х мерный массив Q(mxnxq) длинного типа. Умножить каждую строку страницы на столбец U(q) целого типа и посчитать в полученной матрице кол-во положительных, отрицательных и нулевыхэлементов
2)
в символьной строке заменить все гласные буквы на "_" , рассчитать кол-во цифр, русских, английских букв, а также остальных символов.
3)
список строк содержит наименования учебных дисциплин. Отфильтровать все недопустимые символыи сформировать список, содержащий только предметы, наименования которых начинаютса с согласной буквы. В сформированном списке рассчитать число слов и букв в каждом наименовании
народ ну помогите с задачками
GrAmOzEkA
16.11.2007, 17:46
Собсно мож кому пригодятся мои задачки по Численным методам на С++
*********************
* _____ *
* |_____|____ *
* O|-O-O-|O *
* | o | *
* | | *
* |_-U-_| *
*Coded by GrAmOzEkA *
*********************
В архив входят:
Программа № 1 Вычислить функцию.
Программа № 2 Параболическая интерполяция (2.1).
Программа № 3 Метод Рунге-Кутта (3.1).
Программа № 4 Вычисление определенного интеграла по формуле Симпсона (4.1).
Программа № 5 Вычислить площадь (5.1).
Программа № 6 Поиск минимума функции (6.1, 6.2).
Программа № 7 Метод итераций для решения системы линейных алгебраических уравнений (7.1).
Скачать: http://ifolder.ru/4159877
Приветствую.
Нужна программа на C++ в консоли с расчетом чего либо, кроме " Расчитаем итоговую оценку студента "
напиши в асю)токо быстрее я скоро в оф
MegaBits
18.11.2007, 14:46
1. Определить массив, который будет использован для организации очереди и стека. Тип массива double.
Определить структурный тип, используемый для представления элементов стека, организованного в виде динамической цепочки звеньев.
2. Разработать функции занесения и извлечения данных для простой очереди, циклической очереди, стека на основе массива и на основе связного списка. Обратить внимание на аргументы функций. Можно использовать перегрузку функций.
3. В функции main() проверить работу простой и циклической очередей и обоих вариантов организации стека. Для простой очереди и стека на основе массива добиться их переполнения. Сделать то же самое для циклической очереди. Сделать выводы.
4. Проконтролировать при операциях занесения и извлечения данных изменение индексов записи и считывания для простой и циклической очередей. Проконтролировать изменение индекса вершины стека для массива и адреса вершины стека для списка.
С меня ++.
Прошу помощи по написанию программы "клавиатурный шпион" на чистом асме. Буду благодарен за любую инфу предоставленную по данной теме.
barret могу дать на си переписать думаю будет не проблема
da_ff спасибо, но на си у меня тоже есть, вот только как раз проблема с перепиской, тк уже второй день бьюсь, и ничего не получается (в асме не силен), вот и подумал может у кого есть какие-нить наброски на асме.
043nKRuT0y
19.11.2007, 21:05
N-уголники должны быть правильные?
Да !!! Только опуклые-правильные N-угольники !!!!
da_ff спасибо, но на си у меня тоже есть, вот только как раз проблема с перепиской, тк уже второй день бьюсь, и ничего не получается (в асме не силен), вот и подумал может у кого есть какие-нить наброски на асме.
А смысл писать это на ассемблере?
А смысл писать это на ассемблере?
Да смысл в том, что лаба по асму, в универе. На СИ впринципе и без проблемм можно самому написать, но вот в асме, пока на такое не способен :(
2barret попробуй попросить свой C-компилятор выдать асм-листинг. только вот лучше пользоваться наверное vc, тк распространен, а gcc выдаст код по соглашению at&t, где все справа-налево. естественно надо отключить любую оптимизацию, для простоты кода.
>>cl source.c /TC /c /Gz /Fa "source.asm"
radioelectron
25.11.2007, 15:09
Задание: найти сумму элементов матрицы {aij} (3 на 3) расположенных в строках с отрицательными элементами на главной диагонали.
Это нужно сделать на Паскале. Подскажите, пожалуйста.
Тут даже цикла не надо. Давно я паскаль учил,но...
if (matrix[0][0]<0)
then
summ:=matrix[0][0]+matrix[0][1]+matrix[0][2];
end;
if (matrix[1][1]<0)
then
summ:=matrix[1][0]+matrix[1][1]+matrix[1][2];
end;
if (matrix[2][2]<0)
then
summ:=matrix[2][0]+matrix[2][1]+matrix[2][2];
end;
P.S.
Исправил . на ; ;) .
Задание: найти сумму элементов матрицы {aij} (3 на 3) расположенных в строках с отрицательными элементами на главной диагонали.
Это нужно сделать на Паскале. Подскажите, пожалуйста.
Вот еще вариант:
...
summ:=0;
for i:= 1 to N do begin
for j:= 1 to N do begin
If matrix[i,i] < 0 then
summ:= summ + matrix[i,j];
end;
end;
...
043nKRuT0y
25.11.2007, 20:35
Задание :
Зарисовать весь екран 12-угольниками , 6-угольниками , 4-угольниками - ОДНОВРЕМЕННО ! Пробовал по формулам поворота сначало нарисовать 12-угольник , потом со всех сторон 4-угольники и смещять по екрану относительно точки - не дорисовует последнюю сторону 12-угольника!!!
!!! Только правильные n-угольники !!!
Подскажыте кто знает ...
Писать на Turbo-pascal......
сделай несколько процедур (зарисовка 12и, зарисовка 6и и тд) в какой то координате(в них будет передаваться x и y), создай 2 цикла в одном увеличение по x , в следующем по y, в последнем сделай i:=random(3); , а ниже в операторе case, если i равно
1: нарисовать 12и
2: 6и
и тд
Тогда у тебя в ряд будут идти разные n угольники и заполнится весь экран( ну смотря какие конечно числы по x и y задашь)
ЗЫ Извини что без кода, спать жутко хочется, но раз сам пытался, то тебе не сложно реализовать будет
Тут было у меня заданьице в универе: на основе рекурсивной функции вывести все перестановки произвольных чисел, выкладываю, ибо алгоритм довольно интересный и не сразу допрёшь(на паскале):
program perestanovki(input, output);
const n=5;
type arr=array[1..n] of integer;
var x:arr; i:integer;
procedure trans(x:arr; k:integer);
var i,temp:integer;
begin
if k=n then begin for i:=1 to n do write(x[i],' '); writeln; end
else
begin
for i:=k to n do
begin
temp:=x[k];
x[k]:=x[i];
x[i]:=temp;
trans(x,k+1);
end;
end;
end;
begin
for i:=1 to n do read(x[i]);
trans(x,1);
readln;
readln
end.
DC Sergey
03.12.2007, 20:44
Помогите
прога на С++
Дана строка символов.Подсчитать,скольк о раз среди символов строки встречается буква x
int charcount(char* s,char x)
{
int count = 0,i=0;
while(s[i])
{
if (s[i] == x) count++;
i++;
}
return count;
}
Нужно получить квадратную матрицу для n через динамические массивы.
Например для числа 5:
12345
23450
34500
45000
50000
Вот сделала через обычные масивы, но работает почему-то только для нечетных чисел:(
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main()
{
clrscr();
int i,j;
int N;
int matr[11][11];
cout<<" Vvedit: ";
cin>>N;
for(j=0; j<=N; j++)
{
for(int i=0; i<=N; i++)
{
if ((i=(0+i)) && (j=(N-j))) matr[i][j]=0;
if (i==j) matr[i][j]=N;
if (i>j) matr[i][j]=N-i+j;
};
};
for(j=1; j<=N; j++)
{
for(int i=N; i>=1; i--)
{
cout << matr[i][j] << "\t";
};
cout << endl;
};
getch();
return 0;
}
Помогите пожалуйста!
#include <stdio.h>
#include <windows.h>
int main(int argc,char**argv)
{
if(argc!=2){printf("%s <size matrix>\n",argv[0]);return 1;}
argv=(char**)malloc(argc=atoi(argv[1]));
for(int i=0;i<argc;i++)
*(argv+i)=(char*)malloc(argc);
for(i=0;i<argc;i++)
{
for(int n=0;n<argc;n++)
printf("%d",argv[i][n]);
printf("\n");
}
return 0;
}
ну дальше наверн разберёшься)
Добрый вечер ;)
Задание: Описать класс "товары на складе". Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либу признаку (например, по названию) добавление и удаление записей.
Программа должна содержать меня, позволяющее осуществлять проверку всех методов классов :)
Всё,надеюсь на вашу помощь :)
c++
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++
ну дальше наверн разберёшься)
Не могу (
помогите решить задачу, ток полностью, по ТВ не шарю ><
Составить двумерный массив.
Найти среднее арифметическое каждой строки,вывести значения в одномерный массив и произвести сортировку массива по убыванию.
пасиба заранее.
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++
Помогите с задачей!
Построение кратчайшего остова ориентированного и неориентированного графа с использованием алгоритмов Краскала и Прима
Пока дождешься помощи, другие уже помогут :P
Составить двумерный массив.
Найти среднее арифметическое каждой строки,вывести значения в одномерный массив и произвести сортировку массива по убыванию.
var
M1 : array[1..10,1..10] of real;
M2 : array[1..10] of real;
i,j : integer;
S : real;
IndexMax : integer;
begin
{заполнить массив случайными значениями от 0 до 1000}
Randomize;
for i:=1 to 10 do
for j:=1 to 10 do
M1[i,j] := Random(1000);
{вывести исходный массив}
for i:=1 to 10 do
begin
for j:=1 to 10 do
Write(M1[i,j]:1:1,' ');
WriteLn;
end;
{посчитаем средние значения строк и занесём их в массив}
for i:=1 to 10 do
begin
S := 0;
for j:=1 to 10 do
S := S + M1[i,j];
M2[i] := S / 10;
end;
{напечатаем массив M2 ДО сортировки}
WriteLn('Средние значения:');
for j:=1 to 10 do
Write(M2[j]:5:2,' ');
WriteLn;
{сортировка методом "пузырька" (методом простого выбора )
Выбирается максимальный элемент массива
и меняется местами с первым элементом массива.
Затем процесс повторяется с оставшимися элементами и т. д. }
for i:=1 to 9 do begin
IndexMax := i; {предварительно считаем, что первый элемент наибольший}
{ищем индекс максимального элемента}
for j:=i+1 to 10 do
if M2[j]>M2[IndexMax] then IndexMax := j;
{меняем местами элементы массива с индексами i и IndexMax
(ну, если они не равны, конечно) }
if i<>IndexMax then begin
S := M2[IndexMax];
M2[IndexMax] := M2[i];
M2[i] := S;
end;
end;
{напечатаем массив M2 после сортировки}
WriteLn('Средние значения после сортировки:');
for j:=1 to 10 do
Write(M2[j]:5:2,' ');
end.
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++
Лююддиии, помогите пожалуйста. Нужно написать две отдельные проги не используя классы (сам не знаю чего)...Значит задания:
Прога №1:
Обчислить* самое маленькое сложение (умножение) трех соседних элементов и их индексы, наименьший элемент этой тройки, количество ненулевых элементов, расположенных к этой тройке
Структура программы:
1. Команды препроцессора
2. Описание глобальных переменных Аmax и j
3. Функция input()
4. Функция output()
5. Главная функция main()
6. Функция int amax_calcul (void)
7. Функция void sum_number_calcul (int *sa, int *num)
8. Функция void amax_a1_exchange (void)
Прога №2:
Есть ли среди чисел заданой последовательности целых плюсовых чисел (0х0563 , 0х1d6b , 0x261a , 0x259e) числа, у которых цифры разположены в спадаючем порядке, например: 124; 96531
Заранее благодарен и говорю большое человеческое СПАСИБО за помощь!!!
Добрый день, а с лабораторной в программе FoxPro 9.0 может кто-нибудь помочь? В частности с функцией поиска? 8)
Задание на лабораторную работу.
1. Составить программу на языке C++. Получить теоретическую оценку числа элементарных операций.
2. Включить в программу строки счетчика элементарных операций в соответствии с принятой методикой.
3. Отладить полученную программу.
4. Для различных значений размерностей массива получить значения счетчика операций с(N).
Задания
1.Дана матрица А(N, М). Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (считать, что он единственный), оказался в верхнем левом углу.
2.Дан одномерный массив А(N). Определить количество инверсий в этой последовательности (т.е. таких пар элементов, в которых большее число находится слева от меньшего: xi>xj при i<j ).
Помогите пожалуйста, очень надо, всем кто как-нибудь поможет +2 ;)
Помогите сделать на delphi
Дан двумерный числовой массив. Упорядочить по убыванию элементы тех столбцов, в которых есть хотя бы один элемент, равный 5 (сортировка массивов)
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++
Вот хз, вроде все просто, но перетрахал себе мозги с этими двумя последними лабами, че-то не то получается. Единственный язык который блин с горем-пополам знаю так это Дельфи, и то хрен знает как сдал практику.
Вообщем за мегО спасибо и + помогите решить.
На C++
1. Напишите программу, которая по заданному натуральному числу определяет его первую и последнюю цифры. Определение и вывод цифр оформите в виде функции.
2. Напишите программу с использованием функции Perim. В эту функцию из программы передаются координаты вершин треугольника А(х1, у1), В(х2, у2), С(хЗ, уЗ), а она возвращает периметр треугольника. Если такой треугольник не существует, то выдается соответствующее сообщение.
1. Вычислите сумму элементов с нечетными номерами.
2. Преобразуйте массив так, чтобы элементы массива поменялись местами (первый — с последним, второй — с предпоследним и т.д.).
3. Вычислите сумму элементов, находящихся между первым и последним отрицательными элементами.
4. Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и вычислите сумму положительных элементов, стоящих на нечетных местах.
вот что должно быть в ф-ции для первого задания (где 1я и последняя цифры числа k)
void xek(const int k, int& begin, int& end)
{
end=k%10;
begin=k;
while (begin/10>9)
{
begin=begin/10;
}
}
до вывода надеюсь сам догадаешься)
да вывод фигня)
VERte][ большое спасибо... блин я значит в самом начале тупил) и строчек на 3 больше получалось :D
Может с моим поможете,замучался уже, актуально еще неделю. :confused:
2 Sinex (1е задание с загоном наибольшего эл-та в левый верхний угол) на вскидку, не компилировал, ф-цию zapolnenie сам допишешь надеюсь...
void zapolnenie(int a[][], int n, int m);
void perestanovka(int a[][], int n, int m);
const int m(10),n(10);
int main()
{
int a[n][m];
zapolnenie(a);
perestanovka(a);
return 0;
}
void perestanovka(int a[][], int n, int m)
{
int max,str(0),stb(0),j(0),i(0),temp;
max=a[0][0];
for(int i(0); i<n; i++)
for(int j(0); j<m; j++)
if (a[i][j]>max)
{
str=i; stb=j; /*нахождение строки и столбца где максимальный элемент*/
}
if (str!=1)/*перестановка строк 1 и той где макс элемент*/
{
while (j<m)
{
a[1][j]=temp;
a[1][j]=a[str][j];
a[str][j]=temp;
j++;
}
}
if (stb!=1)/*перестановка столбцов 1 и того где макс элемент*/
{ while (i<n)
{
a[i][1]=temp;
a[i][1]=a[i][stb];
a[i][stb]=temp;
i++;
}
}
}
Допишу, спасибо большое =)
2 Sinex 2е задание про инверсии(zapolnenie тоже сам допиши):
#include<iostream>
using namespace std;
void zapolnenie(int a[], int n);
const int n(10);
int main()
{
int a[n], count(0);
zapolnenie(a);
for (int i(0);i<n-1;i++)
for(int j(i+1); j<n; j++)
if (a[j]<a[i]) count++;
cout<<cout;
return 0;
}
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++
Народ помогите пожалуйста с моими заданиями...на понедельник нужны позарез, а то...ппц будет мне
очень прошу помощи с задачей "Золотая гора" ("Треугольник") на C
Входной файл input.txt
Выходной: output.txt
Идея-подсказка, предложенная мне: "Реализация проста-делай двумерный массив и пускай цикл снизу. Последняя строка совпадает с исходной, а дальше подымайся вверх и выбирай максимум из двух. a[0][0] твой ответ"
Пример правильного input.txt:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Первое число во входном файле (5) - количество строк в треугольнике. Соответственно, остальные - его заполнение. Надо найти сумму чисел, расположенных на пути, начинающемся в верхней точке треугольника и заканчивающимся на основании.
Условия:
1. Каждый шаг на пути может осуществляться вниз по диагонали влево или вниз по диагонали вправо.
2. Число строк в треугольнике - от 1 до 100
3. Треугольник составлен из простых чисел от 0 до 99
Выходные данные.
В файл output.txt записывается только наибольшая сумма в виде целого числа. Для треугольника из примера правильно работающая прога запишет: "30"
Если не сдам в понедельник - не допустят до сессии, хотя это - последний оставшийся зачёт(
кол-во плюсов-благодарностей,какое хотите за реализацию задачи, заявляйте в пм
Лююддиии, помогите пожалуйста. Нужно написать две отдельные проги не используя классы (сам не знаю чего)...Значит задания:
Прога №1:
Обчислить* самое маленькое сложение (умножение) трех соседних элементов и их индексы, наименьший элемент этой тройки, количество ненулевых элементов, расположенных к этой тройке
Структура программы:
1. Команды препроцессора
2. Описание глобальных переменных Аmax и j
3. Функция input()
4. Функция output()
5. Главная функция main()
6. Функция int amax_calcul (void)
7. Функция void sum_number_calcul (int *sa, int *num)
8. Функция void amax_a1_exchange (void)
Прога №2:
Есть ли среди чисел заданой последовательности целых плюсовых чисел (0х0563 , 0х1d6b , 0x261a , 0x259e) числа, у которых цифры разположены в спадаючем порядке, например: 124; 96531
Заранее благодарен и говорю большое человеческое СПАСИБО за помощь!!!
может найдутся разберающиеся люди и помогут с лабами??!!!!
с меня ++ гарантированы
будьте людьми, помогите. просто без этих лаб меня попрут((( с универа, тем более что разберающимся людям их быстро делать.....
***Dr.Freez***
19.12.2007, 12:30
Помогите в написании задания для курсача асм и тоже самое на паскале
Дана строка "YoU ArE DeAd!!!" перевести её в вверхний регист, затем в нижний и вывести все три сторки(искодня, верхний регистр, нижний)....
есть маленькие наработки
masm
.model small
.486
.data
s1 db 'YoU ArE DeAd!!!'
len equ $-s1
db '$'
.code
start:
mov ax, @data
mov ds, ax
mov es, ax
cld ; установить флаг направления в сторону увеличения
; адресов
mov cx, len ; размер строки s1 в СХ
lea si, s1 ; адрес первого элемента в SI
mov di, si ; тот же адрес в DI
next:
lodsb ; загрузить символ строки s1 в регистр AL
cmp al, 65 ; AL < 'a'?
jb skip ; вне диапазона, пропустить
cmp al, 90 ; AL > 'z'
ja skip ; вне диапазона, пропустить
add al,32 ; преобразовать символ из диапазона в 'A' - 'Z'
; в символ из диапазона 'a'-'z'
;next:
; lodsb ; загрузить символ строки s1 в регистр AL
; cmp al, 97 ; AL < 'a'?
; jb skip ; вне диапазона, пропустить
; cmp al, 122 ; AL > 'z'
; ja skip ; вне диапазона, пропустить
; sub al, 32 ; преобразовать символ из диапазона в 'a' - 'z'
; ; в символ из диапазона 'A'-Z'
skip:
stosb
loop next
jmp exit
exit:
lea dx, s1
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
end start
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++
День добрый. Нихуево вы наглые стали, студенты. Ещё бы слово "Смирно бля! Всем решать я сказал!" дописал.
с универа, тем более что разберающимся людям их быстро делать.....
вопрос - а зачем ты в такой институт/колледж/етц пошел?
Помогите в написании задания
ЭЭ..Как помочь? Могу помолиться. Или имеется ввиду так между делом "напишите за меня и дайте готовый код"... ? Ты же привел наработку, зачем тебе помогать?...
Если бы я сюда скидывал каждый вопрос, на который не могу найти ответ - у меня бы уже постов было тысяч десять. Есть очень хорошая традиция.. Помогать надо осмысленно, т.е. это не значит "писать код за тебя". Тем более, когда чел идет учится в крутой институт, для того, чтоб потом на форуме писать "я полный нуб и ничего не понимаю".
***Dr.Freez***
20.12.2007, 04:00
ЭЭ..Как помочь? Могу помолиться. Или имеется ввиду так между делом "напишите за меня и дайте готовый код"... ? Ты же привел наработку, зачем тебе помогать?...
Ну и всё...на этом всё дело закончилось....дальше я хз ч0 с этим делать....а паскаль я вообще не знаю, ....а преподу пох....
#include <stdio.h>
#include <iostream.h>
#include <string.h>
struct tree {
char value[10];
struct tree * parent;
struct tree * left;
struct tree * right;
} newTree;
void output (tree &newTree){
cout << newTree.value;
if(newTree.right->value != NULL)
output (*newTree.right);
}
void main(){
strcpy(newTree.value, "sim");
char text[10] = "sim2";
strcpy(newTree.right->value, "sim2");
output(newTree);
}
тока один вопрос - у меня студия глючит или эта прога действительно вылетает с ошибкой? вроде ничо криминального я там пока не написал, всего-то надо занести в структуру новое значение и попытаться рекурсивно вывести это бинарное дерево.
Помогите решить модуль :) если есть время у кого-то.
http://www.mirnagrad.com/1.jpg
Лаба по C++
"Написать программу, которая создаёт очередь целых чисел вводимых с клавиатуры. Упорядочить эту очередь по возрастанию и вывисти её на экран."
struct Node
{
char data;
Node* next;
};
int main()
{
Node *firstPt=NULL;*token=NULL;*prev=NULL;
cout<<"Введите строку символов"
char ch, flag=1;
do
{
ch=getche();
token=new Node;
token->data=ch;
token->next=NULL;
if (flag)
{
firstPt=token; flag=0;
}
else prev->next=token;
prev=token;
}while(ch!='\r');
cout<<endl;
cout<<"Очередь:\n";
token=firstPt;
while(token)
{
cout<<token->data;
token=token->next;
}
cout<<endl;
getch();
return 0;
Это код создания самой очереди, но нет сортировки.
Немогу отсортировать эту очередь :( помогите плз
Сортировка выбором (selection sort).
Ищешь наимменьший элемент массива, который ставишь на место A[1], ишешь второй наименьший элемент, который ставишь на A[2]... Этот процесс продолжаешь для первых n-1 элементов массива.
Раборает за O(n*n).
for i:=1 to SIZE-1 do begin
min:=i;
for j:=i+1 to SIZE do
if a[j] > a [min]
then min:=j;
buf:=a[i]; a[i]:=a[min]; a[min]:=buf;
end;
Имхо, если брать произвольные числа, то heap-sort самое то- n*lg(n) (Но (!) хоть quick-sort в плохих случаях работает за n*lg(n) . . . . . n*n, тесты показывают, что он быстрее, связано с хз какой записью на винче).
З.Ы. Почитай Кормана.
доброго времени суток )
помогите плз. есть задание:
написать программу, которая построчно выводит на экран слова для заданой строки.
вот что наваял, компилится но не работает (
TITLE vuvod_str.
.386
INCLUDE Study32.inc
WriteString PROTO
ReadString PROTO
WriteChar PROTO
WaitMsg PROTO
ExitProcess PROTO
.DATA
str_in byte 100h dup(?)
str_buff byte 0ffh dup(?)
str1 byte "vvedite stroky simvolov ne bolwe 255 slimvolov",0dh,0ah,0
.CODE
main PROC
mov edx, offset str1
call WriteString ;vuvod priglaweni9 vvesti simvolu
mov ecx, 0ffh
call ReadString ; edx - ukazivaet na bufer, ecx- razmer bufera -1 (rezerv pod 0), vozvrawaet v eax koli4estvo vvedenux simvolov
mov ecx, eax ; deistvitelnoe koli4estvo vvedenux simvolov,
lea ebx, str_in ; zapiwem adres v ebx
mov eax,0 ; obnulim na vs9kii sly4ai
mov edx,0 ;edx toje
L1:
mov al,byte ptr [ebx]+[edx]
cmp al, 20h
je L2 ;esli probel
inc edx ; uveli4im smewenie na 1
call WriteChar ;vuvodim simvol
cmp ecx,0 ; proverim ne dowli li do konca stroki
je L3 ;esli dowli go out
dec ecx ;umenwim koli4estvo ostavwuxs9 cuklov
jmp L1 ; go na sled simvol
L2:
call crlf ;perevod koretki
inc edx ; probel toje simvol
dec ecx
cmp ecx,0 ; proverim ne dowli li do konca stroki
jnz L1
L3:
call WaitMsg ; daem vozmojnost s4itat' rezult
call ExitProcess ; korektnui vuxod iz progi
main ENDP
END main
на деле при запуске после считывания ничего не выводит, немогу разобратся где ошибся...
знаю что можно было использовать repe но незнаю как ) было мало практики и примеры на практике были не сложные
А че это за язык у тя?
утром был асм... (масм + библиотека study32.inс)
Поступило предложение воспользоваться отладченгом и посмотреть в риал-тайме где спряталась ошибко!
Поступило предложение воспользоваться отладченгом и посмотреть в риал-тайме где спряталась ошибко!
скачал олли дебаг, открыл, но тама совсем все не так)
на то чтоб без опыта разобраться что оно там накомпилило надо минимум день...
З.Ы. просто фактически это мой 3 кодинг на асме... отладчиком еще не умею пользоватся...
пошел искать инфу по олли, но это нада на завтра...
закачал архив с исходником и плодами компиляции
брать тут (http://upload.com.ua/link/900055476)
компилил след строкой
ML /nologo -Zi -c -Fl -Sg -coff str_v_br.asm
линковал этой:
LINK32 /nologo str_v_br.obj user32.lib kernel32.lib Study32.obj /SUBSYSTEM:CONSOLE /DEBUG /MAP
Помогите в написании задания для курсача асм и тоже самое на паскале
Дана строка "YoU ArE DeAd!!!" перевести её в верхний регист, затем в нижний и вывести все три сторки(искодня, верхний регистр, нижний)....
есть маленькие наработки
а что ты не понимаешь?
на ассемблере всё просто -
заглавные буквы от A до Z имеют аски коды 41h-5Ah, строчные - 61h-7Ah. И все они ничем друг от друга не отличаются, кроме пятого бита(здесь был KEZ). Меняя его, ты сможешь выводить как в верхнем регистре, так и в нижнем.
например буква а
A:01000001 и a:01100001
Используй xor.
А как на паскале хз =) я его не знаю
Автор, без отладченга ты сильно заебешься...
Открываем, попадаем на первую инструкцию
http://img178.imageshack.us/img178/8314/99811595ov5.jpg
F7 - это шаг внутрь, F8 - поверх.
отличие - например, если будет call, то F7 шагнет внутрь процедуры, а F8 - перешагнет этот CALL
F9 - запуск, F2 - брейк-поинт. ENTER - посмотреть что там находится (по джампу, колу или рету, и тп), не переходя.
Нажимаем F8:
http://img20.imageshack.us/img20/6029/66487815xx4.jpg
Идем F8 или F7, проходя твой код, скоро попадаем на
call ReadString
там все останавливается (из-за ReadConsole()) и надо ввести строку.
http://img20.imageshack.us/img20/8692/91993258gu1.jpg
Ну и вот так, пошагово или с брекпойнтами, выполняя, смотрим где логика не соответствует работе программы.
Отладченг - это сила, без него - все бы вымерли давно.
tclover, бита а не байта.
ага. интересно, почему я про байты написал.
ps а я там у тебя в репе вопрос спросил
спс) еще утром все поправил, пошел сдавать)
ЗЫ юзнул ТДебаг, раньше в паскале програмил (1 курс када был)) нашел все без порблем... теперь изучаю инфу по олли )))
***Dr.Freez***
21.12.2007, 15:50
2 tclover, ды я знаю как перевести в верхний и в нижний регистра, я хз как теперь все три строки вывести =)
Задание
используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
Заранее спасибо
Ded MustD!e
21.12.2007, 22:51
Пожалуйста помогите написать хотя бы одну программу на языке Pascal, завтра по этим программам сдавать зачет. Мне сейчас нужно срочно уезжать и у меня физически нет возможности(((( Заранее спасибо тем, кто поможет написать хоть какую-то часть кода!!
1. Пакет операций над матрицами
Требуется написать пакет функций для работы с матрицами размерности 4х4 :
Транспонирование: матрица B получается перестановкой строк и столбцов в исходной матрице A, т.е. для квадратной матрицы bij = aji.
Умножение: произведением матрицы A размерности nхm на матрицу B размерности mхp называется матрица C, каждый элемент cij которой равен сумме
произведений элементов i–й строки матрицы A на соответствующие элементы j–го столбца матрицы B, т.е. cij = ai1b1j + … + aimbmj.
Логические блоки(что нужно сделать):
Генерация 2 исходных матриц (ручная и random).
Транспонирование обеих матриц.
Умножение 2 матриц.
Вывод (любой) матрицы размерности 4х4.
Как и что будет оцениваться преподом:
Содержательная часть:
+5 – операция транспонирование;
+10 – операция умножение.
Интерфейсная часть:
+5 – понятный интерфейс со строками приглашения и пояснениями результатов;
+5 – наличие меню и циклического алгоритма работы программы.
Пояснительная часть:
+2,5 – встроенная система помощи (вывод справочной информации по операциям по специальной команде);
+2,5 – отчёт о проведённом тестировании подробное описание входных и соответствующих им выходных данных, ограничений программы по диапазонам и проч.).
2. Журнал
Требуется создать "Журнал исследователя" для изучения уровня доходов для некоторой группы населения (не более 100 человек).
Логические блоки (базовый пакет):
Добавление данных о возрасте, городе проживания и среднем месячном доходе 1 человека
(с точностью до целых – для числовых данных).
Поиск диапазона введённых значений (для произвольного набора целочисленных
данных).
Поиск среднего значения (для произвольного набора целочисленных данных).
Вывод аналитических данных (диапазона значений и среднего для всех данных о возрасте и всех данных об уровне доходов).
Логические блоки (дополнительный пакет):
Вывод аналитических данных (диапазон и среднее) для заданной пользователем возрастной группы (вход: диапазон возраста группы).
Построение соотношения "возраст-доход" для каждого человека и вывод аналитических данных: возрастание / убывание дохода с возрастом.
Анализ и вывод данных по каждому городу: диапазон и среднее, отклонение среднего для города от среднего для всех данных. Возможность добавления новых статистических данных и повтора анализа.
Как и что будет оцениваться преподом:
Содержательная часть:
+5 – базовый пакет операций;
+25 – дополнительный пакет операций.
Интерфейсная часть:
+5 – понятный интерфейс со строками приглашения, циклическим вводом данных до специальной команды пользователя и пояснениями результатов;
+5 – наличие меню и циклического алгоритма работы программы.
Пояснительная часть:
+2,5 – встроенная система помощи (вывод справочной информации о возможностях программы по специальной команде);
+2,5 – отчёт о проведённом тестировании (подробное описание входных и соответствующих им выходных данных, ограничений программы по диапазонам и проч.).
Ded MustD!e, я тебе по матрицам напишу
Меня запарило такую фигню писать, ИМО это только для 8-9 класса лицея.
Моя шняга работает с квадратными матрицами. Порядок в матрице задается в константах.
Меня просто запарило писать такую гадость :mad:
program MATRIX;
uses crt;
const
MAX=4;
var
a,b,t1,t2,c1,c2:array [1..MAX,1..MAX] of integer;
j,i,k:integer;
key1,key2:char;
begin
while true do begin
clrscr;
for j:=1 to MAX do
for i:=1 to MAX do begin
t1[j,i]:=0; t2[j,i]:=0; c1[j,i]:=0; c2[j,i]:=0;
end;
repeat
clrscr;
writeln('1-console input'); writeln('2-auto'); writeln('3-exit');
key1:=readkey;
until ((key1='1') or (key1='2') or (key1='3'));
if key1='3' then break;
if key1='1' then begin
for j:=1 to MAX do begin
for i:=1 to MAX do begin
write('a[', j ,',' ,i ,']='); read(a[j,i]);
end;
writeln;
end;
for j:=1 to MAX do begin
for i:=1 to MAX do begin
write('b[', j ,',' ,i ,']='); read(b[j,i]);
end;
writeln;
end;
end;
if key1='2' then begin
writeln('Matrix 1');
for j:=1 to MAX do begin
for i:=1 to MAX do begin
a[j,i]:=random(10); write(a[j,i]); write(' ');
end;
writeln;
end;
writeln('Matrix 2');
for j:=1 to MAX do begin
for i:=1 to MAX do begin
b[j,i]:=random(10); write(b[j,i]); write(' ');
end;
writeln;
end;
end;
writeln(' Matrix created, press key'); key2:=readkey;
writeln('T-Matrix 1');
for i:=1 to MAX do begin
j:=1;
while j<=MAX do begin
t1[i,j]:=a[j,i]; inc(j);
end;
end;
for j:=1 to MAX do begin
for i:=1 to MAX do
write(t1[j,i],' ');
writeln;
end;
writeln('T-Matrix 2');
for i:=1 to MAX do begin
j:=1;
while j<=MAX do begin
t2[i,j]:=b[j,i]; inc(j);
end;
end;
for j:=1 to MAX do begin
for i:=1 to MAX do
write(t2[j,i],' ');
writeln;
end;
writeln(' T-Matrix created, press key'); key2:=readkey;
writeln('Matrix 1 * Matrix 2');
for i:=1 to MAX do
for j:=1 to MAX do
for k:=1 to MAX do
c1[i,j]:=c1[i,j]+a[i,k]*b[k,j];
for j:=1 to MAX do begin
for i:=1 to MAX do
write(c1[j,i],' ');
writeln;
end;
writeln('Matrix 2 * Matrix 1');
for i:=1 to MAX do
for j:=1 to MAX do
for k:=1 to MAX do
c2[i,j]:=c2[i,j]+b[i,k]*a[k,j];
for j:=1 to MAX do begin
for i:=1 to MAX do
write(c2[j,i],' ');
writeln;
end;
writeln(' Increase Matrix created, press key to clear screen'); key2:=readkey;
end;
end.
Определить класс "дата" c компонентными данными: число, месяц, год. Перегрузить операциия: >>,<<
(вывод в формате "чч/мм/гггг"),
>= (проверка на более позднюю дату или на их равенство), += (прибавить n дней).
#include <iostream>
#include <iomanip>
using namespace std;
class v_date
{
int number;
int month;
int year;
public:
v_date (int , int, int );
int put_1();
int put_2();
int put_3();
void get_1(int );
void get_2(int );
void get_3(int );
};
v_date::v_date(int a=0, int b=0, int c=0)
{
if (a<31)
number=a;
if (b<13)
month=b;
if (c<2014)
year=c;
}
int v_date::put_1()
{
return number;
}
int v_date::put_2()
{
return month;
}
int v_date::put_3()
{
return year;
}
void v_date::get_1(int a)
{
if (a<31)
number=a;
else
number=0;
}
void v_date::get_2(int b)
{
if (b<13)
month=b;
else
month=0;
}
void v_date::get_3(int c)
{
if (c<2014)
year=c;
else
year=0;
}
ostream& operator << (ostream& out, v_date p)
{
out<<setw(2)<<p.put_1()<<"/"<<setw(2)<<p.put_2()<<"/"<<setw(4)<<p.put_3()<<endl;
return out;
}
istream& operator >> (istream& in, v_date& p)
{
int a;
cout<<"\nEnter number ";
in>>a;
p.get_1(a);
cout<<"\nEnter month ";
in>>a;
p.get_2(a);
cout<<"\nEnter year ";
in>>a;
p.get_3(a);
return in;
}
int operator >= (v_date p, v_date pp)
{ int kz;
int np=365*p.put_3()+30*p.put_2()+p.put_1();
int npp=365*pp.put_3()+30*pp.put_2()+pp.put_1();
return kz=np<npp ? 0: 1; //вычисляем большую дату
}
void main()
{
v_date d1, d2;
cout<<"\nEnter d1\n";
cin>>d1;
cout<<"\nd1="<<d1;
cout<<"\nEnter d2\n";
cin>>d2;
cout<<"\nd2="<<d2;
if (d1>=d2)
cout<<"\nbig number "<<d1;
else
cout<<"\nbig number "<<d2;
}
вот программка не хватает оператора +=, не могу понять как сделать... что-то вроде v_date operator += (v_date p, v_date pp)
{ int zz; zz=p.put_1()+pp.put_1(); return zz;}может кто поможет /
//решил
Уважаемые Форумчане, помогите пожалуйста с выполнением лабораторной работы на языке С. Дело в том, что лабораторную работу нужно сдать уже в четверг, до него осталось 2 дня, а помимо программирования нужно до четверга сдать ещё 3 зачёта, которые придётся учить, следовательно некого просить о помощи...
Задание лабораторной такое:
Дан файл (333.dat) в котором находятся две квадратные матрицы. Файл выглядит примерно таким образом:
5 4
х х х х х
х х х х х
х х х х х
х х х х х
х х х х х
у у у у
у у у у
у у у у
у у у у где 5 - определитель размерности первой матрицы, 4 - определитель размерности второй матрицы, х - любое число в первой матрице, у - любое число во второй матрице.
Итак нам нужно:
1) проверить наличие файла
2) считать оба массива из файла, предварительно заказав для них память
a = (int **)malloc(n*sizeof(int *));
n - наше первое число 5
for(i=0; i<n; i++)
a[i] = (int *)malloc(n*sizeof(int));
ну в подобном духе...
3) Из первых двух матриц составить третью матрицу, в которой левый верхний угол состоит из элементов той матрицы, след которой больше, а правый нижний - из элементов второй матрицы. Остальные элементы матрицы равны 0.
4) Вывести результат на экран.
Очень надеюсь, что Вы мне поможете. Напомню, что язык, на котором нужно составить программу - "С". (желательно под Visual Studio 2005).
Задание
используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
Заранее спасибо
На основе элементов вещественного массива А(n) и значения логической переменной Т вычислить количество положительных элементов массива А, если переменная Т имеет значение «истина» и произведение отрицательных элементов массива А в противном случае.
Реализация Паскаль.
Пожалуйстааааа!!!!
Email: Ermakgol@mail.ru или здесь...плиз
Release, навскидку
const
n = 5;
var
a : array [1..n] of real;
p : real;
i : integer;
t : boolean;
begin
t := false;
writeln ('ввод данных в массив');
for i := 1 to n do begin
write ('Введите ', i, '-й элемент массива: ');
readln (a [i]);
end;
p := 1;
if t then
for i := 1 to n do
if a [i] > 0 then
p := p * a [i];
if not t then
for i := 1 to n do
if a [i] < 0 then
p := p * a [i];
writeln ('Произведение: ', p : 0 : 3);
end.
Joker-jar
26.12.2007, 17:15
вычислить количество положительных элементов массива А, если переменная Т имеет значение «истина»
То есть тут:
if t then
for i := 1 to n do
if a [i] > 0 then
p := p * a [i];
надо делать типо:
if t then
for i := 1 to n do
if a [i] > 0 then
inc(count);
где count целочисленная переменная, инициализированная нулем перед циклом ;)
Release, лови.
program ArrayNoobas;
uses crt;
const
Max=20;
var
a:array [1..MAX] of real;
i,kol:integer;
pro:real;
t:boolean;
procedure zapoln;
begin
clrscr;
for i:=1 to MAX do
a[i]:=-5+random(10);
end;
procedure create_t;
var
key:char;
begin
repeat
key:=readkey;
until (key='0')or(key='1') ;
if key='0' then t:=false
else t:=true;
end;
begin
zapoln;
create_t;
if t=true then begin
for i:=1 to MAX do
if a[i]>0 then inc(kol);
writeln(kol);
end
else begin
i:=1;
while i<=MAX do begin
inc(i);
if a[i-1]<0 then begin
pro:=a[i-1]; break; end;
end;
while i<=MAX do begin
if a[i]<0 then
pro:=pro*a[i];
inc(i);
end;
writeln(pro);
end;
readln;
end.
Млин, сорри, пост невнимательно прочел ((
где count целочисленная переменная, инициализированная нулем перед циклом
Этого недостаточно, ее еще нужно описать в разделе var :)
Neovild, одно замечание - массив будет заполняться одним числом, ибо отсутствует Randomize в начале процедуры
А вот этот код для чего?
while i<=MAX do begin
inc(i);
if a[i-1]<0 then begin
pro:=a[i-1]; break; end;
end;
Поиск в массиве первого отрицательного числа? Имхо, это лишнее немного, достаточно проинициализировать переменную pro единицей перед циклом вычисления произведения (чуть не написал "производной" :) ). Хотя ваш вариант программы тоже приемлем ;)
Доброе время суток.
Требуется для курсового написать Генератор случайных чисел с экспоненциальным законом распределения. Формула: p(x) = l * exp(-* x).
вот что получилось у меня но проблема в том что ответ всегда равен нолю. в случае если поставить границы для рандома у него всегда одно число ноль. и ответ в результате тоже.
void main (){
double p;
srand((unsigned long)time(NULL));
double x=rand();
double l=rand();
p=l*exp(-l*x);
printf ("%d ,%d ,%d",p,x,l);
getch ();}
Заранее благодарен.
Heavy Metal
28.12.2007, 01:18
Хелп. На асме (Tasm) надо накодить прогу, вычисляющую все простые числа в диапазоне от 2 до вводимого с клавы числа.
upd:
Кое как разобрался, написал ) выкладываю на всякий случай
.model tiny
.386
.Stack 70h
.code
start:
mov ax,@data
mov ds,ax
push cs
pop ds
mov ah,09h ; приглашение к вводу
mov dx,offset str1
int 21h
mov di,0 ; введенные символы
mov si,0 ; номер позиции
mov bp,10 ; основание системы
r1: mov ah,08h
int 21h ;читаем символ
cmp al,'0' ;если это служебный символ -> r3
jb r3
cmp al,'9' ;если это не цифра -> r1
ja r1
mov bl,al ;сохраним символ в bl
mov ax,di
mul bp ;умножаем на 10
mov dl,bl
sub dl,'0' ;преобразуем символ в цифру
mov dh,0 ;DX - цифра
add dx,ax
jc r1 ;Если перенос -> переполнение
inc si
mov di,dx
mov dl,bl
mov ah,02h
int 21h
jmp r1
r3: cmp si,0
je r1
cmp al,13
je enter2 ;нажали ввод
cmp al,8
jne r1
enter2:
mov ah,09h ;новая строка
mov dx,offset newline
int 21h
mov mem,di ;дублируем эталон
mov nen,di
mov ax,mem ; эталон в AX для работы
mov cnt,1 ; счетчик в еденицу
mov bl,1
mul bl ; переводим AX в DX:SI
main_cycle: ;главный цикл
add cnt,1 ; проверяем следующее число
mov bx,mem
mov ax,cnt
cmp ax,bx ; проверены все числа...
jg qall
mov bx,1 ; переносим AX в DX:AX
mul bx
mov cx,2 ; делим с тройки
internal:
push ax
push dx ; сохраняем текущее проверяемое число
;mov bx,cx
div cx ; делим DX:AX на CX
cmp dx,0 ; если остатка нету
je main_cycle; то число не простое
pop dx
pop ax
add cx,1
cmp ax,cx
jle prime
jmp internal
prime:
mov ah,09h ;выводим простое число
mov dx,offset space
int 21h
mov ax,cnt
call print_prime
jmp main_cycle
qall:
mov ax,4c00h;Выход
int 21h
print_prime proc ;вывод числа
push -1
l: xor dx,dx;чистим dx
div bp ;делим
push dx ;сохраним цифру
cmp ax,0 ;остался 0?
jne l ;если нет, продолжим
mov ah,2h
l2: pop dx ;восстановим цифру
cmp dx,-1 ;дошли до конца -> выход
je qex
add dl,'0' ;преобразуем число в цифру
int 21h ;выведем цифру на экран
jmp l2 ;и продолжим
qex:
ret
endp print_prime
str1 db '.-==[Prime Numbers]==-.',10,13
db '> $'
space db ' $'
newline db 10,13,'$'
mem dw 0
nen dw 0
cnt dw 0
end start
Может кому поможет.
Курсовая работа: Нахождение интеграла 5 методами с высокой точностью..
function funk(var x:real):real;
begin
funk:=Ваша функция
end;
procedure left(var a,b,e:real);
var
k,s1,s2,p,l,rez:real;
i,g,n:integer;
begin
n:=30;
g:=0;
repeat
s2:=s1;
p:=(b-a)/n;
l:=0;
g:=g+1;
for i:=0 to n-1 do
begin
k:=a+i*p;
l:=l+funk(k);
end;
s1:=l*p;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;
procedure right(var a,b,e:real);
var
t,s1,s2,h,s,rez:real;
n,i,g:integer;
begin
n:=30;
g:=0;
repeat
s2:=s1;
h:=(b-a)/n;
s:=0;
g:=g+1;
for i:=1 to n do
begin
t:=a+i*h;
s:=s+funk(t);
end;
s1:=s*h;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;
procedure center (var a,b,e:real);
var
t,s1,s2,h,s,rez:real;
n,i,g:integer;
begin
n:=30;
g:=0;
repeat
s2:=s1;
h:=(b-a)/n;
s:=0;
g:=g+1;
for i:=0 to n-1 do
begin
t:=a+h/2+h*i;
s:=s+funk(t);
end;
s1:=s*h;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;
procedure trap(var a,b,e:real);
var
t,s1,s2,h,s,rez: real;
i,n,g:integer;
begin
n:=30;
g:=0;
repeat
s2:=s1;
h:=(b-a)/n;
s:=(funk(a)-funk(b))/2;
g:=g+1;
for i:=1 to n-1 do
begin
t:=a+i*h;
s:=s+funk(t);
end;
s1:=h*s;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;
procedure simps(var a,b,e:real);
var
s,r,s2,s1,h:real;
m,n,ch,g:integer;
begin
n:=30;
ch:=1;
g:=0;
repeat
s2:=s1;
h:=(b-a)/(n-1);
s:=funk(a)+funk(b);
g:=g+1;
for m:=1 to n-2 do
begin
r:=a+h*m;
s:=s+ch*funk(r);
if (ch=4) then ch:=2 else ch:=4;
end;
s1:=s*h/3;
until abs(s2-s1)/s1<e;
writeln('rezult ', s1 :6 :5,' kol-vo iteracij ',g);
readln;
end;
var
a,b,e:real;
vibor:integer;
begin
repeat
writeln('Vvedite metod naxogdeni9 Interala');
writeln('1-Pravilo levix pr9moygolnikov');
writeln('2-Pravilo pravix pr9moygolnikov');
writeln('3-Pravilo srednix pr9moygolnikov');
writeln('4-Naxogdenie integrala metodom simpsona');
writeln('5-Naxogdenie integrala s pomowu pravila Tropesii');
writeln('6-Informasi9 o programme');
readln(vibor);
writeln('');
if vibor=6 then
begin
clrscr;
writeln('-===========================================------');
writeln('Ваше имя сюда вобьете');
writeln('-===========================================------');
writeln('');
end;
until vibor<=5;
clrscr;
writeln('-===========================================------');
write('Vvedite a - ');readln(a);
writeln('');
writeln('-===========================================------');
write('VVedite b - ');readln(b);
writeln('');
writeln('-===========================================------');
write('Vved EPS - ');readln(e);
writeln('');
writeln('-===========================================------');
if vibor=1 then
begin
writeln('Vi vibrali 1. Metod LeVix pr9moygolnikov'); writeln;
left(a,b,e);
end;
if vibor=2 then
begin
writeln('Vi vibrali 2. Metod PraVix pr9moygolnikov'); writeln;
right(a,b,e);
end;
if vibor=3 then
begin
writeln('Vi vibrali 3. Metod Srednix pr9moygolnikov'); writeln;
center(a,b,e);
end;
if vibor=4 then
begin
writeln('Vi vibrali 4.Metod TraPesii'); writeln;
trap(a,b,e);
end;
if vibor=5 then
begin
writeln('Vi vibrali 5. Metod Simpsona '); writeln;
simps(a,b,e);
end;
readln
end.
Писал на ABC паскале поетому немного кривовато получилось. Но у меня приняли
Georg Jung
02.01.2008, 04:06
Каким образом с помощью MFC реализовать следующее:
1. Приложение должно при нажатии клавиш к примеру 1,2,3, ........ выводить графические фигуры (Проблема в том что какое сообщение вставлять в карту? Это WM_CHAR ? и как потом реализацию отклика на сообщение связать с WM_PAINT ....... так чтобы появлялась нужная фигура)
2. Приложение под управлением таймера выводит на экран графические фигуры с заданным интервалом (Как в void CMyMainWnd::OnTimer(UINT nIDEvent) это можно осуществить ? )
3. Нужно чтобы с помощью клавиш "вверх - вниз" изменялась частота таймера.
Шаблон данных приложений примерно такого вида:
#include <afxwin.h>
class CMyMainWnd:
public CFrameWnd
{public:
CMyMainWnd()
{
Create(NULL,"$ - Djigser");
SetTimer(1,1000,NULL);
}
afx_msg void OnTimer(UINT);
DECLARE_MESSAGE_MAP()
~CMyMainWnd()
{
KillTimer(1);
}
};
BEGIN_MESSAGE_MAP(CMyMainWnd,CFrameWnd)
ON_WM_TIMER()
END_MESSAGE_MAP()
class CMyApp :
public CWinApp
{public:
CMyApp(){};
virtual BOOL InitInstance()
{
m_pMainWnd=new CMyMainWnd();
m_pMainWnd->ShowWindow(SW_SHOW);
return TRUE;
}
};
CMyApp theApp;
void CMyMainWnd::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1)
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,255));
CBrush* def_brush = dc.SelectObject(&brush);
dc.Ellipse(5,5,50,50);
dc.SelectObject(def_brush);
brush.DeleteObject();
}
}
Был бы признателен за оказанную помощь.
Задание
используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
Заранее спасибо
Shawn1x
#include <vector>
#include <iostream>
#include <time.h>
#include <algorithm>
using namespace std;
bool pred( int value )
{
return !(value % 2) ;
}
void print( int value )
{
cout << value << '\t';
}
void set_and_print( int& value)
{
cout << ( value = rand() % 20 ) << '\t';
}
void main()
{
const int size = 20;
vector<int> vec(size);
srand((unsigned)time(NULL));
for_each(vec.begin(), vec.end(), set_and_print);
cout << endl;
partition(vec.begin(), vec.end(), pred);
for_each(vec.begin(), vec.end(), print);
cout << endl;
}
Life-inventor
08.01.2008, 23:06
Народ, помогите пожалуйста.
Задача Ферма. Найти квадрат, который в сумме со всеми его собственными делителями дает куб.
С рекурсивным алгоритмом . На С++.
Заранее огромное спасибо.
kotopusya
10.01.2008, 00:48
очень надо решить задачу до пятницы...на с++...никто почему-то не может...неужели она такая нерешаемая?посмотрите пожалуйста...может кто хоть часть кода сможет написать?
Разместить на шахматной доске максимальное количество слонов и ладей так, чтобы они не находились друг у друга "под боем".
http://forum.antichat.ru/showpost.php?p=517321&postcount=16
Вот дали задачку, надо написать под Delphi в консоль апликатион, что-то не получается написать корректные функции
Заданиезаданые n точек на плоскости записать в массив записей tpoint
Разработать подпрограмму поределамия коэф прямой проходишей через две точки
для описания прямой использовать запись с полями k,b:real
разработать подпрограмму формирования записей для всех возможных прямых проходящих между двумя точками
разработать подпрограмму определения прямой с максимальным К и соответствующей ей точек(определить их номера)
то что накропал
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type tpoint=record
x,y:real; end;
primai=record
k,b:real; end;
tmas=array[1..20] of tpoint ;
mas=array[1..20] of real;
//vvod точек
procedure Vvod( var A:tpoint;n:Integer);
var i:integer;
begin
Writeln('vvedire kolvo tochek');
readln(n);
for i:=1 to n do
begin
Writeln('koordinatu x');
readln(A.x);
Writeln('koordinatu y');
readln(A.y);
end;
end;
//функция определения коэфициента.
Function Oprkoef(const tpoint1,tpoint2:tpoint; n:integer ):real;
begin
result:=(tpoint1.y--tpoint2.y)/(tpoint1.x--tpoint2.x);
end;
Var A:tpoint;
n,i,j:integer;
Begin
procedure Vvod(A,n);
readln;
end.
Среда ругается на вывоз процедуры, подскажите в чем оплошность?
А к чему создавать тип TPoint, когда он в делфи уже есть? Только, вроде бы, там x и y типа integer, если память не изменяет. Лучше объявите тип TMyPoint.
В процедуру Vvod передавайте не var A: TPoint, а лучше var A: array of TMyPoint.
Что означает код
result:=(tpoint1.y--tpoint2.y)/(tpoint1.x--tpoint2.x);?
Что за операция -- ? И вообще для чего у вас функция Oprkoef, если она нигде не вызывается?
Begin
procedure Vvod(A,n);
readln;
end.
хе, ключевое слово procedure при вызове подпрограммы из тела главной программы не нужно совершенно.
ЗЫ. На будущее оформляйте плиз код в тэги [коде][/коде], а не в [квоте][/квоте], читать код сложно
Часть кода может быть таким:
program Project2;
{$APPTYPE CONSOLE}
type
TMyPoint = record
x, y : real;
end;
TLine = record
k, b : real;
end;
TMas = array [1..20] of TMyPoint;
////vvod точек
procedure Vvod (var A : TMas; n : Integer);
var
i : integer;
begin
for i := 1 to n do begin
Write ('koordinatu x: ');
readln (A[i].x);
Write ('koordinatu y: ');
readln (A[i].y);
end;
end;
........
var
A : TMas;
n, i, j : integer;
begin
Write ('vvedire kolvo tochek: ');
readln(n);
Vvod (A,n);
readln;
end.
Вообщем нада на завтра ответить на 1 из вопросов, облазил гугл, яндэкс, всё безтолку. Помогите пжлст=)
Вот собственно и сами вопросы:
1. Ассемблер МП18086 фирмы Intel. Арифметические команды. Команды инкрементирования и декрементирования операндов.
2. Минимизация логических функций с использованием координатных диаграмм Вейча. Свойства и шаги минимизации. Создание выражения и схемы для базиса <Да-Нет>.
Заранее огромное-огромное спасибо!
Life-inventor
14.01.2008, 00:07
Народ, помогите пожалуйста.
Задача Ферма. Найти квадрат, который в сумме со всеми его собственными делителями дает куб.
С рекурсивным алгоритмом . На С++.
Заранее огромное спасибо.
Люди, помогите плиз, ооочень надо....
#include <stdio.h>
int i;
int get(void){
int kv,kub,summ;
kv=i*i;
kub=i*i*i;
summ=kv;
for(int h=1;h<=(i*i);h++){
if(kv%h==0) summ+=h;
}
if(summ==kub) return 0;
else get();
return 0;
}
int main(void){
i=1;
get();
printf("%d",&i);
return 0;
}
На тебе! Написано за 5мин.
Вот буду благодарен, уже с этой последний лабой замучался, а завтра уже сдавать
C++
1. Вычислите сумму элементов с нечетными номерами.
2. Преобразуйте массив так, чтобы элементы массива поменялись местами (первый — с последним, второй — с предпоследним и т.д.).
3. Вычислите сумму элементов, находящихся между первым и последним отрицательными элементами.
4. Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и вычислите сумму положительных элементов, стоящих на нечетных местах.
1. Вычислите сумму элементов с нечетными номерами.
int summ=0,massv[size];//чё там у тя
for(int x=0;x<=size;x++){
if(x%2==1) summ+=massv[x];
}
2. Преобразуйте массив так, чтобы элементы массива поменялись местами (первый — с последним, второй — с предпоследним и т.д.).
int massv[size],nsize;
bool f=size%2;
if(!f) nsize=(size-1)/2;
else nsize=size/2;
for(int x=0;x<=nsize;x++){
massv[x]=massv[size-x];
}
Ky3bMu4
в циклах везде используешь <= - наверное нужно просто <.
К тому же massv[x]=massv[size-x]; не меняет местами элементы.
reversys
15.01.2008, 23:07
2 Ky3bMu4
Forcer прав, поправь там.
2 SHLAK
3. Вычислите сумму элементов, находящихся между первым и последним отрицательными элементами.
int first=-1,last=-1,mass[30],sum=0;
for(int i=0;i<30;i++)
{
if(mass[i]<0)
{
if(first==-1)
{
first=i;
}
last=i;
}
}
for(i=first+1;i<last;i++)
{
sum+=mass[i];
}
4. Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и вычислите сумму положительных элементов, стоящих на нечетных местах.
const int size1 = 10, size2 = 5;
int mas1[size1] = {1,2,3,-4,5,6,7,8,9,-10},
mas2[size2] = {11,12,13,-14,15},
newsize = size1 + size2,
sum = 0;
int* mas3 = new int[ newsize ];
for( int i = 0; i < size1; ++i ) {
mas3[i] = mas1[i];
if( i % 2 && mas3[i] > 0 )
sum += mas3[i];
}
for( int i = 0; i < size2; ++i ) {
mas3[size1+i] = mas2[i];
if( (size1+i) % 2 && mas3[size1+i] > 0 )
sum += mas3[size1+i];
}
for(int i=0; i < newsize; ++i)
cout << mas3[i] << ' ';
cout << "\nSum = " << sum << endl;
delete [] mas3;
Ох, свалилось на меня тут тоже.. =\
Нужно написать задачку на С++
1. Напишите программу, которая по заданному натуральному числу определяет его первую и последнюю цифры. Определение и вывод цифр оформите в виде функции.
2. Напишите программу с использованием функции Perim. В эту функцию из программы передаются координаты вершин треугольника А(х1, у1), В(х2, у2), С(хЗ, уЗ), а она возвращает периметр треугольника. Если такой треугольник не существует, то выдается соответствующее сообщение.
Очень хотелосьбы с подключенной библитекой (полностью прогу :rolleyes: ), и каментами к проге... Чтоб разобраться самому хоть..
Времени на выполнение дали: 1-2 дня =\
Dark-Fox
17.01.2008, 06:30
Здраствуйте ув. Кодеры! Очень Нужна ваша помощь у меня сессия если не сдам лабы то будет плохо =\
Дайте код 1 из двух нижеприведенных прог! 1 на выбор!
1 Написать функцию, которая в зависимости от заданного обозначения проводит сортирование массива по возрастанию или убыванию.
2. Написать функцию, которая росчитывает проценты от вклада в зависимости от вида и розмера вклада.
Очень жду! Временя максимум 3 дня, с меня много +++ =))) Прога на С++
Спасибо.
dinar_007
17.01.2008, 19:46
Здраствуйте ув. Кодеры! Очень Нужна ваша помощь у меня сессия если не сдам лабы то будет плохо =\
Дайте код 1 из двух нижеприведенных прог! 1 на выбор!
1 Написать функцию, которая в зависимости от заданного обозначения проводит сортирование массива по возрастанию или убыванию.
2. Написать функцию, которая росчитывает проценты от вклада в зависимости от вида и розмера вклада.
Очень жду! Временя максимум 3 дня, с меня много +++ =))) Прога на С++
Задание впринципе лёгкое...
#include<stdio.h>
#include<conio.h>
#define B 6
main()
{
float array[] = {5.0, 2.0, 3.0, 1.0, 6.0, 4.0};
float *pmin[B], *pmax[B], *e;
int i, j; clrscr();
for(i = 0; i < B; i++)
pmin[i] = pmax[i] = &array[i];
printf("pmin: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmin[i]);
printf("\npmax: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmax[i]);
printf("\narray: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", array[i]);
printf("\n\n");
for(i = 0; i < B; i++)
for(j = i+1; j < B; j++)
{ if(*pmin[i] < *pmin[j])
{
e = pmin[i]; pmin[i] = pmin[j];
pmin[j] = e;
}
if(*pmax[i] > *pmax[j])
{
e = pmax[i]; pmax[i] = pmax[j];
pmax[j] = e;
}
}
printf("По убыванию: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmin[i]);
printf("\nПо возрастанию: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmax[i]);
printf("\nИсходный массив: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", array[i]);
getch();
}
P.S. Во время учёбы нужно учиться, а не пиво пить в подъездах или по клубнякам ходить...
Спасибо.
Пожалуйста...
можете помочь, ща на экзе.
1,2,10,0,10, 0, 1, 2
нужно написать массив так что бы определял цифры между 0 и 10
можете помочь, ща на экзе.
1,2,10,0,10, 0, 1, 2
нужно написать массив так что бы определял цифры между 0 и 10
Не понял задачу, по конкретнее плз
препод задал, вот как есть. что бы опред цифры между 0 и 10.
и еще задал
main (){
int x [] ={1,2,
3,4,5}
что бы каждое число возвелось в квадрат
dinar_007
18.01.2008, 16:20
препод задал, вот как есть. что бы опред цифры между 0 и 10.
и еще задал
main (){
int x [] ={1,2,
3,4,5}
что бы каждое число возвелось в квадрат
Задача некорректна... Давай полный текст билета...
препод задал, вот как есть. что бы опред цифры между 0 и 10.
и еще задал
main (){
int x [] ={1,2,
3,4,5}
что бы каждое число возвелось в квадрат
main()
{
int i;
int x[]={1,2,3,4,5};
printf("Chisla mezhdu 0..10: ");
for(i=0;i<5;i++){
if (x[i]>0&&x[i]<10) printf("%d ",x[i]);
}
return 0;
}
Может чтото вроде такого? хотя не понял задание до конца
с++
main()
{
int i;
int x[]={11,13,9,6,5};
cout << "Chisla mezhdu 0..10: ";
for(i=0;i<5;i++){
if (x[i]>0&&x[i]<10) cout << x[i];
}
return 0;
}
Dark-Fox
20.01.2008, 06:26
Помогите пожалуйста, как оставить в слове только первые вхождения каждой буквы?
на с++
Помогите пожалуйста, как оставить в слове только первые вхождения каждой буквы?
на с++
Не понял задачу, дай пример.
Dark-Fox
20.01.2008, 12:59
ну слово АНТИЧАТ шоп осталось АНТИЧ
ну слово АНТИЧАТ шоп осталось АНТИЧ
#include <string.h>
strncpy()
Dark-Fox
20.01.2008, 16:33
непонял, надо тока 1 вхождения каждого символа!
непонял, надо тока 1 вхождения каждого символа!
#include <string.h>
int main()
{
char str[]="antichat";
char x[20];
memset(x, 0, sizeof(x));
strncpy(x,str,5);
printf("%s",x);
return 0;
}
ЗЫ Суть вопроса до конца не понял...
Delimiter
20.01.2008, 20:03
Dark-Fox используйте ...... на здоровье!
void s_int_trim(char *str)
{
for(int i=0;*(str+i)!=0;i++)
for(int j=i+1;*(str+j)!=0;j++)
if(*(str+i)==*(str+j)
{
strcpy(str+j,str+j+1);
j--;
}
}
но на будущее обьясняйте задание более подробно.
SuperNova
21.01.2008, 22:09
Напишите кто нибудь плиз. или обьясните как это сделать.
Вывести на экран куб (только ребра) с возможностью вращения вокруг вертикальной оси.
Очень надо
Лучше на Делфи или паскале
Delimiter
22.01.2008, 05:59
кубик в фас - это прямоугольник с 2-мя линиями посредине мечущихся по прямоугольнику
8)))))))).... думаю ты не это имеешь ввиду.
А если имеешь ввиду изометрию , то рисуй в трехмерном мире за экраном а затем вычисляй точки пересечения лучей с экраном на линии ТОЧКА_КУБА<->ГЛАЗ получая координаты точек уже в 2-х мерном для твоих линий
life_is_shit
23.01.2008, 03:41
Народ, кому невпадлу помогите с лабой, реально не успеваю (нужно ищо 3 штуки успеть сделать). С меня +.
Задание:
Создать динамическую библиотеку (DLL), в которой описать функцию преобразования файла из формата ASCII в UNICODE. Написать программу, которая вызывает функцию преобразования из DLL.
должно быть написано в visual studio, и обязательно с исходниками. Язык С++
* сессия+5*(хвост) = армия
Antiakvt
23.01.2008, 03:54
Хакеру необходимо составить программу "KeyGenerator", позволяющую подобрать пароли для запуска программного обеспечения "Программа 1". Известо, что пароль (комбинация нулей и единиц) должен состоять из 2*N разрядов. Верным является такой, у которого сумма первых V цифр равна сумме V последних цифр. Помогите хакеру решить эту несложную задачу.
До утра ппц горит... Язык или C++ или Pascal или dcc.
При желании можно и асьму..
Delimiter
23.01.2008, 11:39
void M_gen_key(char *str,int counter,int Nx2,int V)
{
int i,l1,l2;
if(counter<Nx2)
{
*(str+counter)='0';
M_gen_key(str,counter+1,Nx2,V);
*(str+counter)='1';
M_gen_key(str,counter+1,Nx2,V);
}
else
{ //тупость оправдываемая увеличением суммарного кол-ва тактов
// на анализ "умного" перебора хвоста
for(i=0,l1=l2=0;i<V;i++)
{
l1+=*(str+i)-0x30;
l2+=*(str+counter-i-1)-0x30;
}
if(l1==l2)
{
*(str+counter)=0;
// vivod kuda hochesh
// ...........
}
}
}
void CAwsfsfDlg::OnMyGenerate() // обработчик нажатия кнопки
{
char *str;
int N=4;
int Nx2=N*2;
int V=Nx2/2; //тут подкоректируешь если не всегда так
str=new char[Nx2];
M_gen_key(str,0,Nx2,V);
delete[] str;
}
Пользуйся
1. Присвоить целой переменной h третью от конца цифру в записи положительного целого числа k.
2. Числа Фибоначчи (fn) определяются формулами
f0=f1=1; fn=fn-1+fn-2 при n=2, 3, . . .
Вычислить S – сумму всех чисел Фибоначчи, которые не превосходят 1000.
3. Из-за нелётной погоды необходимо посадить находящиеся в воздухе (над аэропортом) самолёты разных классов на несколько запасных аэродромов. Каждый из запасных аэродромов в состоянии принять k[i] самолётов класса не выше p[i], где i – номер аэродрома. Посадить самолеты при условии, что для каждого самолета известно расстояние, которое он может пролететь на имеющемся горючем.
4. Создать компонент – регулятор громкости звука на компьютере.
Кто сделает стукните в асю :) Программы школьные :)
Delimiter
25.01.2008, 23:08
4-я задача :)
неужели такое в школе дают :D чиста драйвер написать или все таки directX ? :D
.... или все таки прилинковать winmm.lib?
....
по 1-й
.... такое даже новичек напишет за 5 сек (насколько я понял условие)
по 2-й
возьмешь
long sum (int a1,int a2)
{
if(a1+a2<1000)
return a2+sum(a2,a1+a2);
else
return a2;
}
...
printf("Sum=%l",2+sum(1,2));
по 3-й мало параметров для решения!
но выглядит как олимпиадная задача выдранная из контекста!
Задача простая агоритм "жадный" на отсортированных массивах(сажаем вначале все самолеты с малым количеством горючего), но вся фишка там что сортировка производится во время ввода данных методом прямой вставки а в другом случае превышение по времени!
D=P=CH= MOD=
28.01.2008, 23:06
Нужна помощь!
Задание такое:
Матрица А из N стpок и N столбцов размещена в одномерном массиве по строкам. Поменять местами К-й и L-й столбцы матрицы (К и L заданы). Результат напечатать по строкам.
Написал прогу:
#include "stdafx.h"
#include <iostream> // for cin/cout
#include <string> // for string
using namespace std;
int main()
{
// enter data
int n;
cout << "Enter N: ";
cin >> n;
cout << "Enter matrix (" << n*n << " numbers):\n";
int a[10000]; // matrix by lines
for (int i=0; i<n*n; ++i)
cin >> a[i];
int k, l;
cout << "Enter K: ";
cin >> k;
cout << "Enter L: ";
cin >> l;
// swap k and l columns
for (int i=0; i<n; ++i)
swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l]
// output result
cout << "Result:\n";
for (int i=0; i<n; ++i)
{
for (int j=0; j<n; ++j)
cout << a[i*n+j] << ' ';
cout << '\n';
}
getchar();
getchar();
return 0;
}
Но забыл, что нужно не вводить числа в матрицу, а случайно генерировать....
Пример получения случайного числа:
#include <time.h>
#include <iostream>
srand(time(0));// случайные числа зависят от времени
A[i][j]=rand()%10; //Случайное число от 0 до 10
Сделайте, чтобы прога работала с случайной генерацией.
Просто нет сейчас возможности самому эти коды совместить. Заранее спасибо!
D=P=CH= MOD=
28.01.2008, 23:40
код примерно такой:
srand(time(0));
for(int i=0;i<=n-1;i++)
{
*** for(int j=0;j<=n-1;j++)
*** {
*** *** massiv[i][j]=rand()%10;//10 диапозон случайных значений (0-10)
}
}
нужно вставить вместо:
nt a[10000]; // matrix by lines
for (int i=0; i<n*n; ++i)
cin >> a[i];
int k, l;
cout << "Enter K: ";
cin >> k;
cout << "Enter L: ";
cin >> l;
откомпильте плиз и потестите...
если что исправьте.
Спасибо!
D=P=CH= MOD=
28.01.2008, 23:43
noobyara Спасибо!
прозьба не актуальна.
Talisman
29.01.2008, 21:19
лсас, где такую мутню задают?
D=P=CH= MOD=
02.02.2008, 15:34
Небольшая прозьба, просто сам че-то неврублюсь пока никак ..
кроче есть прога, все написано, пашет.. раскрашена цветами.
По заданию прога выводит 2 матрицы: первая исходная, а вторая с заменой местами двух столбцов. Так вот эти столбцы в первой и второй матрице надо выделить разными цветами, чтобы было видно.
вот прога:
#include "stdafx.h"
#include <iostream> // for cin/cout
#include <string> // for string
#include <time.h>
#include <windows.h>
using namespace std;
HANDLE hStdout;
int main()
{
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout, BACKGROUND_INTENSITY);
int n;
SetConsoleTextAttribute(hStdout, 7);
cout << "Enter N: ";
cin >> n;
while(n<=0)
{
cout << "\nerror N\nEnter N: ";
cin >> n;
}
SetConsoleTextAttribute(hStdout, 3);
cout << "generate...\n";
int a[10000];
srand(time(0));
for (int i=0; i<n*n; ++i)
{
a[i]=rand()%10;
}
int k=0, l;
SetConsoleTextAttribute(hStdout, 4);
cout << "Enter K: ";
cin >> k;
while(k>n&&k<0)
{
cout << "\nerror K\nEnter K: ";
cin >> k;
}
SetConsoleTextAttribute(hStdout, 8);
cout << "Enter L: ";
cin >> l;
while(l>n&&l<0)
{
cout << "\nerror L\nEnter L: ";
cin >> l;
}
for (int i=0; i<n; ++i)
{
for (int j=0; j<+n; ++j)
cout << a[i*n+j] << ' ';
cout << '\n';
}
// swap k and l columns
for (int i=0; i<n; ++i)
swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l]
// output result
SetConsoleTextAttribute(hStdout, 6);
cout << "Result:\n";
SetConsoleTextAttribute(hStdout, 6);
for (int i=0; i<n; ++i)
{
for (int j=0; j<+n; ++j)
cout << a[i*n+j] << ' ';
cout << '\n';
}
int x;
int i;
if (i==k){SetConsoleTextAttribute(hStdout, 18);}
getchar();
getchar();
return 0;
}
Заранее спасибо!
#include "stdafx.h"
#include <iostream> // for cin/cout
#include <string> // for string
#include <time.h>
#include <windows.h>
using namespace std;
HANDLE hStdout;
int main()
{
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout, BACKGROUND_INTENSITY);
int n;
SetConsoleTextAttribute(hStdout, 7);
cout << "Enter N: ";
cin >> n;
while(n<=0)
{
cout << "\nerror N\nEnter N: ";
cin >> n;
}
SetConsoleTextAttribute(hStdout, 3);
cout << "generate...\n";
int a[10000];
srand(time(0));
for (int i=0; i<n*n; ++i)
{
a[i]=rand()%10;
}
int k=0, l;
SetConsoleTextAttribute(hStdout, 4);
cout << "Enter K: ";
cin >> k;
while(k>n&&k<0)
{
cout << "\nerror K\nEnter K: ";
cin >> k;
}
SetConsoleTextAttribute(hStdout, 8);
cout << "Enter L: ";
cin >> l;
while(l>n&&l<0)
{
cout << "\nerror L\nEnter L: ";
cin >> l;
}
// Добавление здесь
//**************************
for (int i=0; i<n; ++i)
{
for (int j=0; j<n; ++j) {
if( j == k - 1)
SetConsoleTextAttribute (hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
if( j == l - 1 )
SetConsoleTextAttribute (hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout << a[i*n+j] << ' ';
if( j == k - 1 || j == l - 1 )
SetConsoleTextAttribute(hStdout, 8);
}
cout << '\n';
}
// swap k and l columns
for (int i=0; i<n; ++i)
swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l]
// output result
SetConsoleTextAttribute(hStdout, 6);
cout << "Result:\n";
SetConsoleTextAttribute(hStdout, 6);
// Добавление здесь
//**************************
for (int i=0; i<n; ++i)
{
for (int j=0; j<n; ++j) {
if( j == l - 1 )
SetConsoleTextAttribute (hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
if( j == k - 1 )
SetConsoleTextAttribute (hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout << a[i*n+j] << ' ';
if( j == k - 1 || j == l - 1 )
SetConsoleTextAttribute(hStdout, 8);
}
cout << '\n';
}
int x;
int i;
if (i==k){SetConsoleTextAttribute(hStdout, 18);}
getchar();
getchar();
return 0;
}
Можно еще и так :)
for (i=0; i<n; ++i)
{
for (int j=0; j<+n; ++j)
{
if (j == k-1 || j == l-1)
SetConsoleTextAttribute(hStdout, 4);
else
SetConsoleTextAttribute(hStdout, 6);
cout << a[i*n+j] << ' ';
}
cout << '\n';
}
Мне нужно выбрать любое целое число, которое было бы больше единицы и меньше данного и которое было бы взаимно простым с этим данным (выбор числа e при реализации алгоритма шифрования RSA - http://ru.wikipedia.org/wiki/Rsa). Никак не могу понять, как это сделать, точнее как это именно записать кодом.
Буду очень признателен за помощь. Заранее Благодарю!
http://www.example-code.com/vb/rsa.asp
тема переезжает в лаботрторные ...
Помогите с лабораторкой:
Задание А:
Создать два файла, содержащих сведения о десяти нападающих хоккейных команд "Динамо" и "Спартак"
соответсвенно: имена нападающих, число заброшеных шайб, сделанные голевые передачи, заработанное штрафное время.
Задание Б: написать программу, которая по данным, извлечённым из этих файлов, создаёт новый третий файл, содержащий имя, команду, сумму очков(голы+ передачи) для шести лучших игроков обеих команд.
Имена и показатели результативных хоккеистов вывести на экран.
Язык С++.
А
#include<stdio.h>
void main(void)
{
FILE *file1;
FILE *file2;
char ab[]="";
int i = 1;
file1 = fopen( "Dinamo.txt", "w" );
file2 = fopen( "Spartak.txt", "w" );
printf("Dinamo \n");
while(i!=11)
{
printf("Igrok - %d\n",i);
printf("Name: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
printf("Shaibi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
printf("Peredachi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
printf("Straf: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
i++;
}
printf("================================================== \n");
printf("Spartak \n");
i=1;
while(i!=11)
{
printf("Igrok - %d\n",i);
printf("Name: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
printf("Shaibi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
printf("Peredachi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
printf("Straf: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
i++;
}
fclose( file1 );
fclose( file2 );
}
извеняюсь за кривость
Эта программа переводит футы и дюймы в метры и сантиметры. В метры переводятся правильно, а сантиметры отображаются отрицательным
числом. В чём ошибка? :confused:
Формат ввода:
12F 23D
(F-футы D-дюймы)
А выводит примерно так:
12M -23SM
код C++
#include <conio.h>
#include <iostream.h>
int main()
{
double d,c,f;
int l,k,s,t,b;
int z;
char m[10];
double y;
char x[10];
double h;
printf("vvedite | ** , gde | -luboe chislo, **-F,D,M,SM\n");
k=scanf("%lf %s", &y, m);
t=scanf("%lf %s", &h, x);
if (strcmp(m,"F")==0)
if (strcmp(x,"D")==0){
c=y*0.3048;
d=h*2.54/100;
f=c+d;
l=(int)f;
z=(l-f)*100;
cout << "\n " << l<<"M "<<z<<"SM";
getch();
}
}
Программа не правильно переводис в СМ даже если бы было "+" а так если у тебя проблема именно в "-"
z=(f-l)*100;
и будет тоже самое токо с "+"
Эта программа переводит футы и дюймы в метры и сантиметры. В метры переводятся правильно, а сантиметры отображаются отрицательным
числом. В чём ошибка? :confused:
Формат ввода:
12F 23D
(F-футы D-дюймы)
А выводит примерно так:
12M -23SM
c=y*0.3048;
d=h*2.54;
cout << "\n" << c<<"M "<<d<<"SM";
vvedite | ** , gde | -luboe chislo, **-F,D,M,SM
12F 23D
3.6576M 58.42SM
переводит правильно.. что ты намудрить пытаешься?
xxxxxxxxxxxxxxx
19.02.2008, 19:39
кто может написать прогу которая умножает число из 500 знаков на любое введенное с клавиатуры число?
с++
кто может написать прогу которая умножает число из 500 знаков на любое введенное с клавиатуры число?
На каком Языке?
кто может написать прогу которая умножает число из 500 знаков на любое введенное с клавиатуры число?
с++
Сдесь вроде есть сырцы от кузьмича, только вот не знаю если он умножает число из 500 цифр.
С первой проблемой разобрался.
Я сделал также обратный перевод (метры сантиметры-футы дюймы)
Но вот почему прога переводит неправильно?
Напрмер:
Ввод футов и дюймов
12F 34D
Вывод:
56M 78SM
Значит при вводе
56M 78SM
должно выводиться
12F 34D
Но не выводит :(
Замена 100 на 12 не помогла(так как в футе 12 дюймов)
P.S ВСЕ ЧИСЛА ПРИВОДИЛИСЬ НЕТОЧНЫЕ ДЛЯ ПРИМЕРА.
Код проги если надо выложу
force задавай дюймы меньше 12 все нормально будет работать
http://depositfiles.com/files/3677097
Кто может решить задачку на Turbo Pascal ? С меня + ну если рядом живёте то и пиво =)
program kursovaya_rabota;
var
a, b : longint;
begin
b := 100111111;
write ('Умножьте два двоичных числа: 01101 и 001011 - и введите ответ: ');
readln (a);
if b = a then
writeln ('Ответ верен')
else
writeln ('Ответ неверен');
end.
В архиве код какого-то древнего паскаля? о_О
хз мб и древний паскаль, препод сказал сделать =) А в проге получается не должны вычисляться числа 01101 и 001011. Т.е Их сам считаешь и вводишь результат?
Ога, это типа умеешь ли ты юзать калькулятор в бинарном режиме или выполнять арифметические действия с бинарными числами столбиком))
Может есть у кого алгоритм "Сведения матриц к матрицам с преобладающими деогональными элементами" на любом языке)
Sharingan
24.02.2008, 19:20
День добрый, такое дело, срочно нужна лаба, времени что бы самому разбираться и делать нет....
Нужна программа для Решения Систем линейных уравнений(СЛАУ). Метод Последовательных исключений Гаусса! Язык Исполнения С(С++)
Вообще это и нагуглить можно, но как сказал уже времени нет. Буду ООчень благодарен =)
День добрый, такое дело, срочно нужна лаба, времени что бы самому разбираться и делать нет....
Нужна программа для Решения Систем линейных уравнений(СЛАУ). Метод Последовательных исключений Гаусса! Язык Исполнения С(С++)
Вообще это и нагуглить можно, но как сказал уже времени нет. Буду ООчень благодарен =)
ХЗ может ето?
http://www.alexeypetrov.narod.ru/C/gauss_about.html
помогите разобраться с программой(лаба) вот отрыврк из нее:
if ((n.Uout(t)==14.0) && (lk==0)) {
o=t;
lk=1;
}
if ((n.Uin(t)>=n.Uin(t+lo)) && (lk1==0)) {
o1=t;
lk1=1;
}
препод задал вопрос для чего в этом месте между n и Uin используется точка
if ((n.Uin(t)>=n.Uin(t+lo)) && (lk1==0)) {
Delimiter
25.02.2008, 16:10
n.Uin()
обращение к методу класса n
Ребята, помогите пожалуйста. Дали в универе. Turbo Pascal.
Даны 2 матрицы А(3;3) В(4;4). Для каждой матрицы сформировать массив, содержащий максимальный элемент строк. Ввод,формирование, вывод(полученного массива) выполнить в процедурах..
очень прошу, помогите..
>>сформировать массив, содержащий максимальный элемент строк
нельзя объявлять массив с максимальными элементами
"type a = array [1..n] of ..."
где n - походу максимальный элемент, или я чего то не понял???
>>сформировать массив, содержащий максимальный элемент строк
нельзя объявлять массив с максимальными элементами
"type a = array [1..n] of ..."
где n - походу максимальный элемент, или я чего то не понял???
не знаю даже, препод дал именно такое задание? а как можно по-другому решить, мне бы хотя бы какой-нибудь листинг к завтрашнему дню показать, спасибо заранее.
Я так понял надо 2 массива сделать один A, другой B, данные будут браться из матриц, которые (данные) перед этим надо ввести и потом оба массива (или массив???) вывести на экран?
Я так понял надо 2 массива сделать один A, другой B, данные будут браться из матриц, которые (данные) перед этим надо ввести и потом оба массива (или массив???) вывести на экран?
дада, именно, только вывод массивов выполнить в процедурах, все правильно. помоги пожалуйста.
дада, именно, только вывод массивов выполнить в процедурах, все правильно. помоги пожалуйста.
создаеш 2 двумерных массива один на 3 другой на 4 элемента, потом (как бы я сделал) ставиш рандомно заполнение ячеек матриц (мы их в школе сетками называем, это одно и тоже?) потом присваиваеш ячейкам из сетки такую же ячейку массива, а в конце выводиш оба массива на экран (кстати почему именно процедурами? веяние дельфи?), вроде так.
P.S. вроде помог, все разжевал тебе только код написать...ща репу спасиб
P.S.S. убил бы того, кто эти задания составляет
создаеш 2 двумерных массива один на 3 другой на 4 элемента, потом (как бы я сделал) ставиш рандомно заполнение ячеек матриц (мы их в школе сетками называем, это одно и тоже?) потом присваиваеш ячейкам из сетки такую же ячейку массива, а в конце выводиш оба массива на экран (кстати почему именно процедурами? веяние дельфи?), вроде так.
P.S. вроде помог, все разжевал тебе только код написать...ща репу спасиб
P.S.S. убил бы того, кто эти задания составляет
Примерно вроде понял, только я никогда не мог запомнить синтаксис вообще любого языка, мог бы мне помочь с кодом, если не сложно конечно. Я сейчас намалюю не знаю чего, а потом на это смотреть как баран на ворота новые, а сдать уже к завтршнему дню нужно =\
>n.Uin()
обращение к методу класса n
врешь, не обязательно
Примерно вроде понял, только я никогда не мог запомнить синтаксис вообще любого языка, мог бы мне помочь с кодом, если не сложно конечно. Я сейчас намалюю не знаю чего, а потом на это смотреть как баран на ворота новые, а сдать уже к завтршнему дню нужно =\
так бы сразу и написал, напиши мне исходник... :)
>n.Uin()
обращение к методу класса n
врешь, не обязательно
n может быть структурой, а Uin() - функцией-членом этой структуры.
Delimiter
27.02.2008, 02:35
:p я сказал в соответствии с кодом.... что приблизительно ждал препод :D
перегрузки функций методов тоже не касался так что можете пофантазировать 8))))
дан двумерный массив. выведите номера столбцов все элементы , которых честные числа.
с++
массив можно от себя задать
Delimiter
27.02.2008, 19:17
#include "stdio.h"
#define N 3
#define M 3
int A[N][M]={ 1,2,3,
4,4,6,
7,8,9 };
void print_col(void)
{
int f,i,j;
for(i=0;i<M;i++)
{
for(j=0,f=0;j<N;j++)
if(A[j][i]%2==1)
f=1;
if(f==0)
printf("%d,",i);
}
}
void main()
{
print_col();
}
//вывод номера колонок начиная с нуля
Задание: Создать Windows - приложение
- Программа должна содержать две формы - форму ввода и форму вывода.
- Задача должна быть реализована в рамках отдельного класса
- Форма вывода должна показывать введенные данные и результаты
Задача: Нужна программа для ведение ведомости
Главное - чтоб был список студентов и список предметов
и скажем в ListBox or ListView
и отдельное окно для вывода - желательно с функцией сохранения(что-то типо простенького редактора)
_____________________________________________
Заранее сп.
Delimiter
28.02.2008, 19:57
дык программа нужна или исходники???
:rolleyes:
исходники
прям ппц как надо
Найти наиболее часто повторяющееся число в массиве.
delphi
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot