Технический форум

Технический форум (http://www.tehnari.ru/)
-   C/C++/С# (http://www.tehnari.ru/f42/)
-   -   Программа на Си (http://www.tehnari.ru/f42/t71698/)

lastAtlant 09.04.2012 00:59

Программа на Си
 
Всем привет, я тут новичок, как и в программировании. Недавно записался на курсы по Си, и после первой практики преподаватель сразу задал несколько задач на дом. Опыта у меня мало, а точнее почти никакого,помогите написать код для программы , хотя бы для одной из них, я знаю что там нужно применить циклы , а также if else, но каким образом сложно представить
Я думаю вам они будут несложны и даже интересны:

Задача 1
Написать программу имитирующую работу высотомера бомбы. Бамба падает с высоты Н, которая которая задается пользователем. В любой момент времени можно узнать пройденное расстояние по формуле
L = g(t*t)/2, где g = 9.81 m/(c*c)
Высотомер бомбы срабатывает раз в секунду и выводит на терминал текущее значение высоты над поверхностью земли h.

Задача 2
Написать программу представляющую символы в массиве согласно правилу: сначала идут латинские буквы, потом цифры. Строка задается в коде программы в виде случайной последовательности букв и цифр. Пользоваться дополнительными массивами нельзя.
Замечание: сортировка в данной программе не применима в виду ее трудоемкости. Нужно использовать группировку элементов массива.

Задача 3
Программа очищающая строку от лишних пробелов. Лишними считаются пробелы в начале строки. и в конце строки и пробелы между словами, если их количество больше 1.
Замечание: Сдесь запрещено создавать дополнительные массивы, т.е. неоходимо стремится к экономии памяти.

Если поможете хотя бы с одной из них буду очень признателен, буду зазбираться в коде

Vladimir_S 09.04.2012 10:32

Вложений: 1
Цитата:

Сообщение от lastAtlant (Сообщение 714741)
Задача 2 Написать программу представляющую символы в массиве согласно правилу: сначала идут латинские буквы, потом цифры. Строка задается в коде программы в виде случайной последовательности букв и цифр. Пользоваться дополнительными массивами нельзя. Замечание: сортировка в данной программе не применима в виду ее трудоемкости. Нужно использовать группировку элементов массива.

Заинтересовала задачка, особенно утверждение о неприменимости сортировки ввиду ее запредельной (очевидно, для преподавателя) трудоемкости. Нарисовал программку с использованием слегка видоизмененного пузырька, ни малейшей трудоемкости при том не обнаружив. Но увы - на Си я не пишу, только на Паскале. Если заинтересует в плане алгоритма, Паскаль-код могу выложить.

kreol 09.04.2012 13:01

Цитата:

Сообщение от lastAtlant (Сообщение 714741)
группировку элементов массива

Никогда раньше не встречал...
Что это за метод?

Vladimir_S 09.04.2012 16:00

Цитата:

Сообщение от kreol (Сообщение 714902)
Никогда раньше не встречал... Что это за метод?

Я тоже не в курсе, но альтернативный пузырьку метод придумал - может быть, это оно? Суть: шлёпаем по массиву слева направо до первой цифры. Фиксируем ее номер (I). Дальше, стартуя от I, двигаемся вправо до первой буквы, пусть ее позиция (J). Меняем местами элементы I и J. Возвращаемся на позицию I и шлепаем дальше, и так продолжаем до тех пор, пока правее очередной цифры не обнаружится ни одной буквы.
Можно и так. Надо будет попробовать.

kreol 09.04.2012 16:30

Эмм если я правильно понял, то стартовать от I+1
Ну и вроде от того же метода пузырька не сильно отличается))
Хотя чем метод пузырька сложен и правда не понятно

lastAtlant 09.04.2012 23:25

интересно конечно читать как вы эту задачку обсуждаете, но скиньте пожалуйста код чтобы я хоть посмотрел как это вообще получается
а на паскале я не понимаю я только вот Си начал изучать

Chervones 10.04.2012 08:23

Для первой задачи надо провести табулирование функции с шагом 1 и интервалом от Н до нуля. Если время будет вечером код напишу .

lastAtlant 12.04.2012 01:07

хорошо , спасибо

lastAtlant 13.04.2012 00:44

Цитата:

Сообщение от Chervones (Сообщение 715338)
Для первой задачи надо провести табулирование функции с шагом 1 и интервалом от Н до нуля. Если время будет вечером код напишу .



если не сложно напиши плиз код

Chervones 17.04.2012 19:06

Вот код на прошлой неделе не было времени:
Код:

#include "stdafx.h"                            //подключаем стандартные библиотеки
#include "math.h"                              //подключаем стандартные библиотеки

void main()
{
    float t,b,h,x,y;                                            //вводим переменные
    printf("Введите a,b,h -->");                          //Спрашиваем у пользователя ввести необходимые переменные
    scanf("%f %f",&b,&h);                                  //Считываем значения двух переменных
        t=sqert((2*b)/9.81);                                //Рассчитываем общее время падения
            for(x=t;x>=0;t-=h)                              //Запускаем массив, где время больше нуля с шагом 1 сек.
                {
                y=9.81*((x*x)/2);                          //Вводим нашу формулу
                printf("x=%f --> y=%f \n",x,y);          //Выводим на экран значения высоты и времени
                }
    clrscr()                                                      //Очищаем  экран и ждём нажатия кнопкипользователем
    getch()
}


возможно с ошибками


Часовой пояс GMT +4, время: 07:41.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.