Тролль Опубликовано 3 июля, 2010 Жалоба Поделиться Опубликовано 3 июля, 2010 (изменено) Ну, это называется не "помогите написать", а соответственно названию темы... :D const n=10; var a:array[1..n,1..n]of integer; i,j,k,l,imin,imax,min,max:integer;begin randomize; for i:=1 to n do for j:=1 to n do a[i,j]:=random(199)-99; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln end; writeln;for i:=1 to n do begin min:=a[i,1]; max:=a[i,1]; imin:=1; imax:=1; for j:=1 to n do begin if a[i,j]<min then begin min:=a[i,j]; imin:=j end; if a[i,j]>max then begin max:=a[i,j]; imax:=j end;end; if imin>imax then begin j:=imin; imin:=imax; imax:=j end; for k:=imin+1 to imax-2 do for j:=imin+1 to imax-2 doif a[i,j]<a[i,j+1] then begin l:=a[i,j]; a[i,j]:=a[i,j+1]; a[i,j+1]:=l end; end;for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln end; readln end. Изменено 3 июля, 2010 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Sergey2010 Опубликовано 3 июля, 2010 Жалоба Поделиться Опубликовано 3 июля, 2010 Огромное спасибо :D Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 20 июля, 2010 Жалоба Поделиться Опубликовано 20 июля, 2010 Удалил два поста про JS, ибо ответа уже не нужно, да и вряд ли кто ответит и пробило на философию Программируя на javascript никогда не знаешь когда встанешь на очередную граблю. Иногда складывается впечатление, что в языке больше плохого чем, хорошего. :dontgetit: Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Помогите пожалуйста на языке С написать программу: Присвоїти цілій змінній d першу цифру із дробової частини додатного дійсного числа x (наприклад, якщо x=32.597, то d=5). Присвоить целой переменной d первую цифру с дробной части положительного вещественного числа x (например, если x = 32.597, то d = 5). Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 (изменено) Удалил ибо не прочитал внимательно. И так нужна готовая программа или как это сделать? :) (просто я сюда редко заглядываю, вот и спросил) Вот так... приблизительно. float fnum = 32.597;int num0 = fnum;int num1=fnum-num0;char cNum[0]=num1;int num2=cNum[0]; В num2 первая цифра дробной части. PS Можно конечно не на момент объявления, но так проще и понятнее. Изменено 12 сентября, 2010 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Удалил ибо не прочитал внимательно. И так нужна готовая программа или как это сделать? :) (просто я сюда редко заглядываю, вот и спросил) Вот так... приблизительно. float fnum = 32.597;int num = fnum;char cNum[0]=fnum-num; PS Можно конечно не на момент объявления, но так проще и понятнее. а пожно пожалуйста от начала?)я просто изучать только начал, вот и хочу знать:)Спасибо заранее Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Riki_Tiki_Tavi: в смысле с начала, да я пример поправил ибо не верно написал. Тут дело сводится к обычному преобразованию типов и всё, ну а сначала, так я просто не стал писать include и main :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Riki_Tiki_Tavi: в смысле с начала, да я пример поправил ибо не верно написал. Тут дело сводится к обычному преобразованию типов и всё, ну а сначала, так я просто не стал писать include и main :) а какой include подключать?)studio.h? а какой include подключать?)studio.h? И еще извиняюсь за флуд, и извини если запряг, но пожалуйста, я как обучающийся, можешь пожалуйста описать около строк что какая значит? Я в рейтинг добавлю когда разрешат:) Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 (изменено) Riki_Tiki_Tavi: вот, как просил. // обявили вещ. пер. и присвоили ей значение 32.597.float fnum = 32.597;// Выделили целую часть те 32 int num0 = fnum; // выделили дробную часть и привели к целому, те 32.597-32=0.597=597int num1=fnum-num0;//закинули 597 в строковуюchar cNum[0]=num1;//взяли из строковой первое число те 5 и привели его к целомуint num2=cNum[0]; А что подключать тебе виднее, по сути результат можно просто посмотреть в отладчике. PS А спасибо - это не обязательно, и так сказали спасибо уже :) PPS Подпись поправь, она не вписывается в правила форума, ну на мой взгляд. Изменено 12 сентября, 2010 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Riki_Tiki_Tavi: вот, как просил. // обявили вещ. пер. и присвоили ей значение 32.597.float fnum = 32.597;// Выделили целую часть те 32 int num0 = fnum; // выделили дробную часть и привели к целому, те 32.597-32=0.597=597int num1=fnum-num0;//закинули 597 в строковуюchar cNum[0]=num1;//взяли из строковой первое число те 5 и привели его к целомуint num2=cNum[0]; А что подключать тебе виднее, по сути результат можно просто посмотреть в отладчике. PS А спасибо - это не обязательно, и так сказали спасибо уже :) PPS Подпись поправь, она не вписывается в правила форума, ну на мой взгляд. Спасибо большое за информацию!) Оо спасибо поправлю:) Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 (изменено) Я немного ошибся тк торопился))) Сорри... надо домножить на 10 Так проще и понятнее... // обявили вещ. пер. и присвоили ей значение 32.597.float fnum = 32.597;// Выделили целую часть те 32 int num0 = fnum; // выделили дробную часть и привели к целому, те (32.597-32)*10=5.0=5int num1=(fnum-num0)*10; // по сути можно было использовать сдвиг Изменено 12 сентября, 2010 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 а как задержать окно, а то программа резко открылась и закрылась? Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 (изменено) Riki_Tiki_Tavi: int getch();Описание: Функция getch читает без эхо-отображения отдельный символ прямо с консоли. Напечатанные (введенные) символы не имеют эхо-отображения. Если введен CONTROLL-C, система выполняет INT 23H. Возвращаемое значение: Функция getch возвращает прочитанный символ. Возвращаемого значения в случае ошибки нет. См.также cgets, getche, getchar. попробуй всё же почитай учебник по С/С++ :)Там где хочешь поставить задержку делаешь вызов функции getch() можно без присвоения переменной (возможна ошибка - зависит от настроек компилятора), те будет ожидание до нажатия на любую клавишу. Да, я знаю что читал... это я к слову. Изменено 12 сентября, 2010 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Ребят что у меня тут не так? Помогите, не судите строго, только начал изучать Си, задача такова, что нужно посчитать объем конуса, если есть радиус(любой) и высота(любая). вот я так делал, но оно показывает постоянно 0 #include <stdio.h> #include <math.h> #include <conio.h> int main() { float S,r,h,V,R,M_Pi,s,a; printf("Мы должны найти V=1/3SH \n"); printf("Введите R= \n"); scanf("%d",&R); S=M_Pi*r*r; printf("Введите h= "); scanf ("%d",&h); V=1/3*s*h; printf("Выйдет %d", V); getch(); return 0; } Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Riki_Tiki_Tavi: Есть такие ошибки: а) ввод в одни переменные, вычисление с другими. R и r, S и s - это разные переменные! То же самое с M_Pi: M_Pi и нужное нам M_PI - это разные константы! б) ввод-вывод по спецификации %d - для целых. А у нас float, нужна спецификация %f, иначе число интерпретируется совершенно иначе. в) 1/3 дает 0! Надо 1./3 Надеюсь, теперь получится. С, в отличие от Pascal, проглатывает почти любые ошибки без замечаний. Его девиз - программист знает, что делает. Это по своей сути не учебный язык. Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 (изменено) Riki_Tiki_Tavi: как совет - в теле main () {} return - не нужен. И еще не называй переменные одной буквой - велика вероятность запутаться, особенно в типах. Пиши так: int viCirk, ciDup=1; vi - целочисленная переменная, от сокращения var int ci - целочисленная константа, от сокращения const int Ну и тд, по сути как тебе нравится. Изменено 12 сентября, 2010 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Спасибо большое всем! Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 //закинули 597 в строковую char cNum[0]=num1; выкидывает тут ошибку In function `int main()': invalid initializer conflicting declaration 'int num1' conflicts with previous declaration `float num1' [Warning] converting to `int' from `float' Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 сделай предопределение, те сначала декларацию, а потом операции присвоения и проверь имена переменных. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Riki_Tiki_Tavi: Мой вариант: #include <stdio.h>main(){float a; scanf("%f",&a); printf("%d",(int)(10*a)%10); getchar(); getchar();} Выход клавишей Enter. Впрочем, в условии, кажется, просили присвоить результат сначала целой переменной d. Тогда #include <stdio.h> main(){float a; int d; scanf("%f",&a); d=(int)(10*a)%10; printf("%d",d); getchar(); getchar();} Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Оффтоп Тролль: по уму компилятор сам проводит типизацию, правда это на С++, а не на С.... я про (int) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Indomito: При присваивании. В выражении ему на это смелости нехватит :dontgetit: Можно было чуть прще так: d=int(10*a)%10; А по-твоему можно так: d=10*a; d%=10; Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 Riki_Tiki_Tavi: Мой вариант: #include <stdio.h>main(){float a; scanf("%f",&a); printf("%d",(int)(10*a)%10); getchar(); getchar();} Выход клавишей Enter. Впрочем, в условии, кажется, просили присвоить результат сначала целой переменной d. Тогда #include <stdio.h> main(){float a; int d; scanf("%f",&a); d=(int)(10*a)%10; printf("%d",d); getchar(); getchar();} Всё отлично работает, спасибо огромное, но прошу извинить, я как учащийся попрошу вас, пожалуйста напишите около каждой строки что она значит.Заранее огромное спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 сентября, 2010 Жалоба Поделиться Опубликовано 12 сентября, 2010 (изменено) Riki_Tiki_Tavi: Вообще-то, тут всего две строки: подключение заголовочного файла и собственно программа в одну строку. Полезнее было бы разобрать такую программу самостоятельно. Подробно по частям программы: #include <stdio.h> // подключение заголовочного файла функций ввода-вывода Cmain() // заголовок функции, вызываемой операционной системой{float a; int d; // объявление имен вещественной и целой переменныхscanf("%f",&a); // чтение с клавиатуры значения вещественной переменнойd=(int)(10*a)%10; // вычисление значения первой цифры после дес. точки и ее присваивание переменной d; // цифра находится как остаток от деления на 10 целой части увеличенного в десять раз исходного числаprintf("%d",d); // вывод полученного значения на экранgetchar(); getchar();} // задержка вывода на экране до нажатия клавиши Enter Изменено 12 сентября, 2010 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Aksiom Опубликовано 13 сентября, 2010 Жалоба Поделиться Опубликовано 13 сентября, 2010 Написать на C++. Задание. В модуль включить функции: 1. Записи в файл некоторого количества четверок чисел, подчиняющихся сдвинутому экспоненциальному закону распределения Xn=b-ln(Vn)/L , где V случайные числа, равномерно распределённые в диапазоне (0,1]. Количество четвёрок, коэффициенты b, L и имя файла вводить с консоли. 2. Получения и вывода на экран в графическом режиме шрифтом Triplex даты и времени запуска программы. Для вывода отвести нижнюю четверть площади экрана. Сюда же вывести фамилии авторов модуля и размер 3. Чтение из файла этих чисел по пункту 1 и рисования на экране эллипсов с прочитанными параметрами и случайным цветом. Рисование производить в осташейся свободной части экрана. Помогите ребята кто может. Буду очень благодарен и рад. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти